Условный ЗАМЕНИТЬ в SQL Server

Проект таблицы содержит

projectid|description|statuscode|path|....

У меня есть предложение SQL, которое должно возвращать следующее (псевдокод):

SELECT ..., 
 CASE 
 WHEN statusCode IN ('C', 'N', 'F') 
 IF (path contains 'CLOSED PROJECTS')
 THEN 
 REPLACE(path,'CLOSED PROJECTS','DEAD PROJECTS') 
 ELSE
 REPLACE(path,'ACTIVE PROJECTS','DEAD PROJECTS') 
,
.....
from Project where projectId=.....

Как реализовать этот "условный" REPLACE?

Я использую SQL Server 2008.

1 ответ

Может быть так..

SELECT ..., 
 CASE 
 WHEN statusCode IN ('C', 'N', 'F') 
 and path like '%CLOSED PROJECTS%'
 THEN 
 REPLACE(path,'CLOSED PROJECTS','DEAD PROJECTS') 
 ELSE
 REPLACE(path,'ACTIVE PROJECTS','DEAD PROJECTS') 
,
.....
from Project where projectId=.....

licensed under cc by-sa 3.0 with attribution.