PostgreSQL:return 计数 = 0 后的消息

PostgreSQL: return message after count = 0

我的问题可能很简单,但我完全卡住了。

我有脚本

SELECT COALESCE(COUNT(id), 0) as MyFiels from table

它工作正常,当我的值为零时它显示 0。

但我想要那个而不是 0,例如我可以看到一行 = "NO RESULTS"。

我试过了:

SELECT COALESCE(to_char(COUNT(id), 'NO RESULT')) as MyFiels from table

并且 PostgreSQL 显示错误消息:

ERROR: "E" is not supported
SQL state: 0A000

我哪里错了?有什么想法吗?

我知道是什么错误了,您正在尝试使用 coalesce 将 0 转换为字符串,然后使用 coalesce 将 null 转换为其他内容。您需要使用 CASE

SELECT  CASE WHEN COUNT(*)  = 0 THEN 'NO RESULT'
             ELSE CAST(COUNT(*) as TEXT)
        END as field
FROM Table