Условный нуль, не ноль в столбце оператора выбора - SQL Server
Пожалуйста, посмотрите на это и дайте мне знать возможное решение?
Данные для отображения из таблицы:
select a,b,d,e from table xyz.
- когда c равен нулю, покажите d со значением
или же
- когда c не ноль, покажите e со значением
Требуются данные:
Данные выглядят так
a b c d e
1 2 null 2
1 2 not null 2
Из приведенных выше данных, если c равно нулю, отобразить d = b, иначе e = b.
Как написать правильный запрос SQL для вышеуказанных условий, как я пытался случай, он не работает.
Заранее спасибо.
2 ответа
SELECT CASE WHEN c IS NULL THEN d ELSE e END
Бит об отображении d = b, иначе e = b приводит меня к мысли, что вы также можете пытаться сравнить значения NULL и NOT NULL.
Важно понимать, что SQL NULL означает "Неизвестно", и поэтому сравнение между известным значением и неизвестным значением невозможно.
В этом случае я предлагаю использовать Coalesce для изменения значения, когда оно равно NULL, на что-то сопоставимое, что не повлияет на вашу логику.
Coalesce(d, 0) = b