0
行がない場合、関数array_agg()
はnull
を返します。これを変更して行が返されないようにするにはどうすればよいですか?例えば、次のような単純なクエリ取る:入力行がない場合、array_agg()は行を返しません。
select array_agg(country)
from country
where false
この値null
と一列を返します。返される行はありません。
行がない場合、関数array_agg()
はnull
を返します。これを変更して行が返されないようにするにはどうすればよいですか?例えば、次のような単純なクエリ取る:入力行がない場合、array_agg()は行を返しません。
select array_agg(country)
from country
where false
この値null
と一列を返します。返される行はありません。
空の配列を除去するHAVING
句を使用:
[local] #= select array_agg(1) from a where false;
┌───────────┐
│ array_agg │
├───────────┤
│ (null) │
└───────────┘
(1 row)
[local] #= select array_agg(1) from a where false having array_agg(1) <> '{}';
┌───────────┐
│ array_agg │
├───────────┤
└───────────┘
(0 rows)