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
我的问题可能很简单,但我完全卡住了。
我有脚本
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