我有一张包含销售 ID、产品代码和金额的表格。有些地方产品代码是空的。我想显示 Missing 而不是 null。下面是我的表格。
salesId prodTypeCode amount
1 123 150
2 123 200
3 234 3000
4 234 400
5 234 500
6 123 200
7 111 40
8 111 500
9 1000
10 123 100
我想显示每个 prodTypeCode
的总金额,如果 prodTypeCode 为 null,则应显示 Missing 选项。
select (CASE WHEN prodTypeCode IS NULL THEN
'Missing'
ELSE
prodTypeCode
END) as ProductCode, SUM(amount) From sales group by prodTypeCode
以上查询给出错误。请建议我克服这个问题。我创建了一个 SQLFIDDLE
最佳答案
问题是数据类型不匹配; 'Missing'
是文本,但产品类型代码是数字。
将产品类型代码转换为文本,使两个值兼容:
select (CASE WHEN prodTypeCode IS NULL THEN
'Missing'
ELSE
prodTypeCode::varchar(40)
END) as ProductCode, SUM(amount) From sales group by prodTypeCode
参见 SQLFiddle .
或者,更简单:
select coalesce(prodTypeCode::varchar(40), 'Missing') ProductCode, SUM(amount)
from sales
group by prodTypeCode
参见 SQLFiddle .
关于postgresql - postgres 中空值的选择查询中的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35787892/