Comment obtenir le dernier élément d'un tableau dans PostgreSQL?
La Documentation PostgreSQL sur les tableaux fournit un exemple d'utilisation de [-1]
d'accéder à ce qui semble être le dernier élément d'un tableau; cependant, alors que les SELECT arr[2:3];
produit {5,9}
, arr[2:-1]
résultats dans {}
.
Comment le dernier élément d'un tableau être obtenus dans PostgreSQL?
Edit: Windows, PostgreSQL v9.2.1
Vous devez vous connecter pour publier un commentaire.
Je pense que vous êtes une mauvaise interprétation de l'exemple. PostgreSQL tableaux n'ont pas à être indexé de 1 à
n
, c'est juste la:L'exemple que vous voyez est ce:
Mais ces nombres négatifs ne sont pas d'indexation à partir de la fin des tableaux, comme dans les langages tels que Perl. Dans le
FROM (SELECT ...
partie, ils sont en précisant le début et la fin des index de sorte que le -1 dansf1[1][-1][5]
est juste un simple vieux index. Considérez ceciarray_dims
résultat:Si vous utilisez la valeur par défaut 1-base de tableaux vous pouvez obtenir le dernier élément avec un simple
arr[array_length(arr, 1)]
. Si vous n'utilisez pas la valeur par défaut[1:n]
tableaux, alors vous allez avoir à déranger lesarray_lower
etarray_upper
pour obtenir le premier et le dernier élément; ou, selon les circonstances, vous pourriez être en mesure d'utiliserunnest
pour décompresser le tableau puis utiliser le tableau comme un ensemble de lignes.Pour n'importe quel tableau "arr", afin de récupérer le dernier élément du tableau arr utilisation