【发布时间】:2015-02-02 17:13:43
【问题描述】:
我需要“命名”类别:mycat 是一个 text 列,可能的值是 '0' 到 '4'。
SELECT CASE mycat
WHEN '0' THEN 'ZERO'
WHEN '1' THEN 'ONE'
WHEN '2' THEN 'TWO'
WHEN '3' THEN 'THREE'
WHEN '4' THEN 'OTHER'
END AS my_category,
COALESCE(SUM(col1), 0),
COALESCE(SUM(col2), 0),
COALESCE(SUM(col3), 0)
FROM mytable
GROUP BY mycat
ORDER BY mycat;
这工作正常,但我的程序中有一些错误,很少写null(或'',正如我在pgAdmin中看到的那样)。在这种情况下,我必须将'' 视为与'0' 相同。
但我无法理解!
我尝试这样:
SELECT CASE COALESCE(mycat, '0')
但这根本不能解决问题。
如何获得'' 将与'0' 类别相加和分组?
PostgreSQL 9.3,Windows。
【问题讨论】:
标签: sql postgresql case aggregate