Отображение того же значения в выражении SQL case - PullRequest
0 голосов
/ 09 мая 2020

Это может быть простой вопрос, но я не могу найти решение для этого, у меня есть оператор SQL case некоторой формы, например:

CASE
  WHEN table_1.col_1 IS NULL THEN 'NULL'
  ELSE table_1.col_1
END as 'col_1'

col_1 имеет тип данных TEXT . Я пытаюсь добиться того, чтобы NULL записывался везде, где значение NULL, а затем я хочу, чтобы отображалось исходное значение, если оно не NULL. Я проверил остальную часть запроса, все в порядке. Выполнение оператора ELSE для 'table_1.col_1' приводит ко всем значениям NOT NULL как 'table_1.col_1'.

1 Ответ

0 голосов
/ 09 мая 2020

Превращение оператора ELSE в 'table_1.col_1' приводит ко всем значениям NOT NULL как 'table_1.col_1'

Не используйте одинарные кавычки, потому что вы получаете строковый литерал 'table_1.col_1', а не значение столбца table_1.col_1. В опубликованном вами выражении CASE нет одинарных кавычек вокруг table_1.col_1, поэтому оно должно работать нормально, но это logi c может быть выражено с помощью COALESCE() следующим образом:

COALESCE(table_1.col_1, 'NULL') AS col_1

Также не используйте одинарные кавычки для псевдонимов. При необходимости используйте обратные кавычки или квадратные скобки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...