Масиви й серіїлише PostgreSQL

ARRAY_LENGTH

Повертає довжину масиву в заданому вимірі.

Синтаксис

ARRAY_LENGTH(<масив>, <вимір>)

Для звичайного списку вимір — 1: ARRAY_LENGTH(tags, 1). Від CARDINALITY відрізняється двома речами: питає про конкретний вимір, а для порожнього масиву повертає NULL, а не 0.

Довжина списку
SELECT ARRAY_LENGTH(ARRAY['sql', 'postgres', 'database'], 1) AS tag_count;
tag_count
3
Порожній масив: CARDINALITY проти ARRAY_LENGTH
SELECT CARDINALITY(ARRAY[]::text[]) AS cardinality,
ARRAY_LENGTH(ARRAY[]::text[], 1) AS array_length;
cardinalityarray_length
0NULL

Для порожнього масиву CARDINALITY дає 0, а ARRAY_LENGTH — NULL.

Рядки й стовпці двовимірного масиву
SELECT ARRAY_LENGTH(ARRAY[[1, 2, 3], [4, 5, 6]], 1) AS rows_count,
ARRAY_LENGTH(ARRAY[[1, 2, 3], [4, 5, 6]], 2) AS columns_count;
rows_countcolumns_count
23

Зверни увагу

Для порожнього масиву — NULL, тож ARRAY_LENGTH(tags, 1) = 0 не спрацює ніколи. Перевіряй IS NULL або бери CARDINALITY(tags) = 0.

Вимір обов'язковий: ARRAY_LENGTH(ARRAY['a']) дасть помилку function array_length(text[]) does not exist.

Вимір, якого в масиві нема, дає NULL: ARRAY_LENGTH(ARRAY['a'], 2).

Схожі функції

Детально в курсі