Причина, по которой ваш запрос не работает, заключается в том, что он написан неправильно. Посмотрите на это:
in ([01],[02],[11])
Помещение [] вокруг ваших значений означает, что вы хотите, чтобы они рассматривались как имена столбцов. Если вы удалите кавычки, то эта часть будет работать. Также посмотрите на это:
then "xvalue"
здесь вам нужны одинарные кавычки.
else 'NULL'
Здесь вы хотите, чтобы значение было NULL или строка "NULL"? Как бы вы это ни написали, это будет строка «NULL»
Чтобы получить значение NULL, напишите это так:
else NULL
Здесь снова все написано правильно:
select
x =
case
when xvalue in (52,57,82,83)
then 'xvalue'
when yvalue in (01,02,11)
then 'yvalue'
else 'NULL'
end
from xyztable