PostgreSQL,jsonb_build_object和jsonb_agg

时间:2018-08-27 06:56:52

标签: sql postgresql having

最近,我遇到了两个查询:

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},第二次-什么都没有,请您说明一下这两个查询中发生了什么?我都不希望两者都有结果。

1 个答案:

答案 0 :(得分:2)

它与JSON函数无关。

select count(1) where false;

select count(1) where false having count(1) > 0;

提供相同的效果。

第一个查询报告where子句和第二个查询having子句中有0条记录满足给定条件,从第一个查询中过滤出行,其中count(1) <= 0 < / p>