Existe-t-il un moyen de trouver la taille d'un tableau?
Par exemple,
CREATE TABLE example (id integer[]) ;
INSERT INTO exam VALUES ( '{}');
INSERT INTO exam VALUES ( '{5,6,7}');
A partir de là, existe-t-il des possibilités d'obtenir un résultat comme le suivant,
size
0
3
Comme l'a mentionné vyegorov, array_length
fera l'affaire. Ou si vous savez que le tableau est à 1 dimension (ce qui est probable) et exécute PostgreSQL 9.4 ou supérieur, vous pouvez utiliser cardinality
:
SELECT cardinality(id) FROM example;
C'est trivial lecture de documents :
SELECT array_length(id, 1) FROM example;
En supposant que la dimension du tableau sera toujours 1, je ne me sens pas à l'aise, alors je suis allé avec ce qui suit:
SELECT coalesce(array_length(id, 1), 0) as size FROM example;
Cela fait ... au moins une décennie, mais nous faisions beaucoup avec coalesce
et c'était assez pratique. Peut-être que je l'atteins par confort?
J'ai dû utiliser array_upper dans postgres 8.2.