Sql 合并类型jsonb和boolean无法匹配

Sql 合并类型jsonb和boolean无法匹配,sql,json,postgresql,group-by,Sql,Json,Postgresql,Group By,我有问题的下一部分: 'goals', COALESCE( json_object_agg(log.type, COALESCE(log.data, TRUE)) FILTER (WHERE log.type IS NOT NULL), '{}' ) 我得到了下一个错误: ERROR: COALESCE types jsonb and boolean cannot be matched LINE 30: ...ject_agg(log

我有问题的下一部分:

 'goals', COALESCE(
          json_object_agg(log.type, COALESCE(log.data, TRUE)) FILTER (WHERE log.type IS NOT NULL),
          '{}'
        )
我得到了下一个错误:

ERROR:  COALESCE types jsonb and boolean cannot be matched
LINE 30: ...ject_agg(log.type, COALESCE(log.data, TRUE)) FIL...
                                                          ^

查询错误出现在此处:

coalesce(log.data, true)
coalesce()
的两个操作数必须具有相同的数据类型。它看起来像是
data
json
,因此它与布尔值
true
不匹配

可能需要将布尔值转换为json文本:

coalesce(log.data, 'true'::json)
这也应该起作用:

coalesce(log.data, 'true')

在cast之后,我得到了几乎相同的错误:COALESCE类型jsonb和text无法匹配。这应该是“真实的”,没有猫:)