Postgresql, jsonb_build_object и jsonb_agg - PullRequest
       12

Postgresql, jsonb_build_object и jsonb_agg

0 голосов
/ 27 августа 2018

Недавно я столкнулся с двумя запросами:

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 голосов
/ 27 августа 2018

Это не относится к функциям JSON.

select count(1) where false;

и

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

, обеспечивающие тот же эффект.

В первом запросе сообщается, что выполнено 0 записейусловие в предложении where и во втором запросе having предложение отфильтровывает строки из первого запроса, где count(1) <= 0 </p>

...