PGSQL - 没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换

时间:2017-07-12 04:48:31

标签: json postgresql stored-procedures casting

此代码出错。我看过类似的类型问题而无法找到答案。

sum(COALESCE(((rpt.report_target_data::json->>'itemQuantity')::int)::int),0) as itemQuantity,

report_target_data 是一个json对象和' itemQuantity'是json的一个元素。有时该字段包含空值。因此,当我尝试获得总和时,它会产生错误,因为如果列具有空值,则postgres无法获得总和。上面的代码有什么问题。有办法绕过那件事吗?即使某些行包含空值,有没有办法计算总和?

以上是上述代码的错误 - >

  

没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。

1 个答案:

答案 0 :(得分:-1)

就我而言,这不是 COALESCE 问题,但我最终回答了这个问题。

我注意到我的列值是字符(varchar 类型),所以我所做的是:

select sum(cast(num_suf as int)) as total  from results; 

以防万一有人再次遇到这个问题:)