私はPostgresを使用しており、次のようなクエリを作成しようとしています:
select count(*) from table where datasets = ARRAY[]
つまり、特定の列に空の配列を持つ行がいくつあるかを知りたいのですが、postgresはそれが気に入らないのです:
select count(*) from super_eds where datasets = ARRAY[];
ERROR: syntax error at or near "]"
LINE 1: select count(*) from super_eds where datasets = ARRAY[];
^
構文は次のとおりです。
SELECT
COUNT(*)
FROM
table
WHERE
datasets = '{}'
引用符と中括弧を使用して、配列リテラルを表示します。
空の配列に対してarray_upperおよびarray_lower関数がnullを返すという事実を使用できるため、次のことができます。
select count(*) from table where array_upper(datasets, 1) is null;
ソリューションクエリ:
select id, name, employee_id from table where array_column = ARRAY[NULL]::array_datatype;
例:
table_emp:
id (int)| name (character varying) | (employee_id) (uuid[])
1 | john doe | {4f1fabcd-aaaa-bbbb-cccc-f701cebfabcd, 2345a3e3-xxxx-yyyy-zzzz-f69d6e2edddd }
2 | jane doe | {NULL}
select id, name, employee_id from tab_emp where employee_id = ARRAY[NULL]::uuid[];
-------
2 | jane doe | {NULL}
SELECT COUNT(*)
FROM table
WHERE datasets = ARRAY(SELECT 1 WHERE FALSE)