日付を選択したい(私の列はタイムスタンプ型です)。しかし、列が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...
^
COALESCE()
関数を使用するのが最も良い方法です。これは、NULLの場合に代替値で単純にスワップするためです。読みやすさも大幅に向上しています。 :)
SELECT COALESCE(to_char(last_post, 'MM-DD-YYYY HH24:MI:SS'), '') AS last_post, content FROM topic;
AS
をケースに入れますか?
試してください:
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;
私はまだクエリを試していません。
select coalesce(to_char(last_post, 'MM-DD-YYYY HH24:MI:SS'), '') as last_post, content
from topic;