ИЛИ оператор в ТОГДА разделе заявления CASE
У меня есть следующий оператор SQL CASE. Я хотел бы включить значения NULL как часть условия 'SENNo':
SEN = CASE --SEN
WHEN @Subgroup = 'SENA' THEN 'A'
WHEN @Subgroup = 'SENP' THEN 'P'
WHEN @Subgroup = 'SENS' THEN 'S'
WHEN @Subgroup = 'SENNo' THEN 'N'
END
Поэтому я хотел бы, чтобы это эффективно делало следующее:
SEN = CASE --SEN
WHEN @Subgroup = 'SENA' THEN 'A'
WHEN @Subgroup = 'SENP' THEN 'P'
WHEN @Subgroup = 'SENS' THEN 'S'
WHEN @Subgroup = 'SENNo' THEN 'N' OR NULL
END
Это не работает, но я не уверен, как структурировать мою логику.
РЕДАКТИРОВАТЬ: Вот решение после предложения jparask направил меня на правильный путь:
ISNULL(SEN, 'N') = CASE --SEN
WHEN @Subgroup2 = 'SENA' THEN 'A'
WHEN @Subgroup2 = 'SENP' THEN 'P'
WHEN @Subgroup2 = 'SENS' THEN 'S'
WHEN @Subgroup2 = 'SENNo' THEN 'N'
END
1 ответ
Решение
SEN = CASE --SEN
WHEN @Subgroup = 'SENA' THEN 'A'
WHEN @Subgroup = 'SENP' THEN 'P'
WHEN @Subgroup = 'SENS' THEN 'S'
WHEN ISNULL(@Subgroup,'SENNo') = 'SENNo' THEN 'N'
END
или же
SEN = CASE --SEN
WHEN @Subgroup = 'SENA' THEN 'A'
WHEN @Subgroup = 'SENP' THEN 'P'
WHEN @Subgroup = 'SENS' THEN 'S'
WHEN @Subgroup IS NULL OR @Subgroup = 'SENNo' THEN 'N'
END