130 votes

Comment trouver la dimension d'un tableau

Existe-t-il un moyen de trouver la taille d'un tableau ?

Par exemple,

CREATE TABLE example (id integer[]) ;

INSERT INTO example VALUES ( '{}');

INSERT INTO example VALUES ( '{5,6,7}');

De là, y a-t-il des possibilités d'obtenir un résultat comme suivant,

size

0

3

175voto

Adam Dingle Points 1

Comme Vyegorov l'a mentionné, array_length feront l'affaire. Ou si vous savez que le tableau est unidimensionnel (ce qui est probable) et exécute PostgreSQL™ 9.4 ou supérieur, vous pouvez utiliser cardinality :

SELECT cardinality(id) FROM example;

95voto

vyegorov Points 6487

Ce sont des documents de lecture triviaux :

SELECT array_length(id, 1) FROM example;

16voto

jc00ke Points 553

En supposant que la dimension du tableau sera toujours 1, je ne me sens pas à l'aise avec, alors j'ai suivi 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'attrape par confort ?

6voto

Sean K Anderson Points 101

J'ai dû utiliser array_upper dans postgres 8.2.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X