最近,我遇到了两个查询:
select jsonb_build_object('a', jsonb_agg(1))
where false;
select jsonb_build_object('a', jsonb_agg(1))
where false
having count(*) > 0;
第一次重新调整{"a": null}
,第二次-什么都没有,请您说明一下这两个查询中发生了什么?我都不希望两者都有结果。
答案 0 :(得分:2)
它与JSON函数无关。
select count(1) where false;
和
select count(1) where false having count(1) > 0;
提供相同的效果。
第一个查询报告where
子句和第二个查询having
子句中有0条记录满足给定条件,从第一个查询中过滤出行,其中count(1)
<= 0 < / p>