Выберите дату (временную метку) из PostgreSQL в качестве строки (char), остерегайтесь значения NULL
Я хочу выбрать дату (мой столбец - тип метки). Но когда в столбце указывается дата NULL, я хочу вернуть пустую строку. Как это сделать? Я написал это:
SELECT
CASE WHEN to_char(last_post, 'MM-DD-YYYY HH24:MI:SS') IS NULL THEN ''
ELSE to_char(last_post, 'MM-DD-YYYY HH24:MI:SS') AS last_post END
to_char(last_post, 'MM-DD-YYYY HH24:MI:SS') AS last_post, content
FROM topic;
Но это показывает мне некоторые ошибки, не знаю почему:
ERROR: syntax error at or near "as"
LINE 1: ...ELSE to_char(last_post, 'MM-DD-YYYY HH24:MI:SS') AS last_po...
^
Ответы
Ответ 1
Использование функции COALESCE()
- самый приятный подход, поскольку он просто заменяет заменяющее значение в случае NULL. Считываемость также значительно улучшена.:)
SELECT COALESCE(to_char(last_post, 'MM-DD-YYYY HH24:MI:SS'), '') AS last_post, content FROM topic;
Ответ 2
select coalesce(to_char(last_post, 'MM-DD-YYYY HH24:MI:SS'), '') as last_post, content
from topic;
Ответ 3
Вы помещаете свой AS
в этом случае?
Try:
SELECT
CASE WHEN last_post IS NULL THEN ''
ELSE to_char(last_post, 'MM-DD-YYYY HH24:MI:SS') END AS last_post,
content
FROM topic;
Я еще не пробовал запрос.