【发布时间】:2017-07-12 04:48:30
【问题描述】:
此代码给出错误。我看过类似类型的问题,但找不到答案。
sum(COALESCE(((rpt.report_target_data::json->>'itemQuantity')::int)::int),0) as itemQuantity,
report_target_data 是一个 json 对象,“itemQuantity”是该 json 的一个元素。有时该字段包含一个空值。因此,当我尝试获取总和时,它会出现错误,因为如果列有空值,postgres 无法获得总和。上面的代码有什么问题。有没有办法绕过这件事?即使某些行包含空值,有没有办法计算总和?
这是上面代码的错误->
没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
【问题讨论】:
-
您将
0作为第二个参数传递给sum()。您可能打算将其传递给COALESCE()。 -
非常感谢。 COALESCE 将为空值分配一个默认值。有没有办法为空字符串(“”)分配默认值?@NickBarnes
-
coalesce(nullif(your_value,''),0)
标签: json postgresql stored-procedures casting