我想选择一个日期(我的列是时间戳类型)。但是当in列是空日期时,我想返回一个空字符串。怎么做?我写的是:

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()函数是最好的方法,因为它只是在空值的情况下交换一个替换值。可读性也大大提高。:)

SELECT COALESCE(to_char(last_post, 'MM-DD-YYYY HH24:MI:SS'), '') AS last_post, content FROM topic;

关于sql - 从PostgreSQL中选择日期(时间戳)作为字符串(char),当心NULL值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15990344/

10-09 22:07