SQL Server не имеет встроенного оператора if
, но он имеет встроенный case
, который можно использовать для достижения того же.
Кейс имеет две формы, одна из них:
select
case MyFlag
when 1 then 'YES'
when 0 then 'NO'
else 'OOPS'
end
from MyTable
где он используется так же, как переключатель в C-подобных языках, а другой:
select
case
when MyFlag = 1 then 'YES'
when MyFlag = 0 then 'NO'
-- when some unrelated condition...
else 'OOPS'
end
from MyTable
где он последовательно оценивает список условий и возвращает первое выполненное условие.
P.S. Часть end
обязательна, и я обычно об этом забываю.
Обычно обычная case
строка полностью встроена, как
.
select (case MyFlag when 1 then 'Yes' else 'No' end) as MyFlagDesc