CREATE TABLE example (id integer[]) ;
INSERT INTO exam VALUES ( '{}');
INSERT INTO exam VALUES ( '{5,6,7}');
Из этого можно ли получить результат, например следующий,
size
0
3
Ответ 1
Как отмечали vyegorov, array_length сделает трюк. Или, если вы знаете, что массив 1-мерный (что вполне вероятно) и работает PostgreSQL 9.4 или выше, вы можете использовать cardinality:
Предполагая, что размерность массива всегда будет 1, я не чувствую себя комфортно, поэтому я выбрал следующее:
SELECT coalesce(array_length(id, 1), 0) as size FROM example;
Это было... по крайней мере, десять лет, но мы привыкли много делать с coalesce и это было довольно удобно. Может быть, я тянусь к этому из-за комфорта?