배열의 크기를 찾는 방법이 있습니까?
예를 들어
CREATE TABLE example (id integer[]) ;
INSERT INTO exam VALUES ( '{}');
INSERT INTO exam VALUES ( '{5,6,7}');
이로부터 다음과 같은 결과를 얻을 수있는 가능성이 있습니까?
size
0
3
답변
vyegorov가 언급했듯이 array_length
트릭을 수행합니다. 또는 배열이 1 차원 (아마도)이고 PostgreSQL 9.4 이상을 실행중인 경우 다음을 사용할 수 있습니다 cardinality
.
SELECT cardinality(id) FROM example;
답변
사소한 읽기 문서입니다 .
SELECT array_length(id, 1) FROM example;
답변
배열의 차원이 항상 1이라고 가정하는 것은 내가 편한 것이 아니기 때문에 다음과 같이했습니다.
SELECT coalesce(array_length(id, 1), 0) as size FROM example;
적어도 10 년이 지났지 만 우리는 많은 일을 coalesce
했고 꽤 편리했습니다. 내가 편안하게 손을 뻗은 것일까?
답변
postgres 8.2에서 array_upper를 사용해야했습니다.