Maison > base de données > tutoriel mysql > Comment puis-je normaliser les plages d'indices de tableau dans PostgreSQL 9.6 et versions ultérieures ?

Comment puis-je normaliser les plages d'indices de tableau dans PostgreSQL 9.6 et versions ultérieures ?

Linda Hamilton
Libérer: 2025-01-09 12:21:45
original
187 Les gens l'ont consulté

How Can I Normalize Array Subscript Ranges in PostgreSQL 9.6 and Later?

Normalisation des plages d'indices de tableau dans PostgreSQL 9.6 et versions ultérieures

Les indices de tableau dans PostgreSQL peuvent démarrer à partir de n'importe quel index. Cependant, de nombreuses applications préfèrent les tableaux uniformément indexés commençant à 1. Cet article traite des méthodes de normalisation des tableaux unidimensionnels pour suivre cette convention.

Solutions existantes

Initialement, une solution complexe utilisant les fonctions array_lower et array_upper a été utilisée pour normaliser les indices. Ces méthodes, bien qu’efficaces, sont complexes et peu élégantes.

Simplification pour PostgreSQL 9.6

Avec la sortie de PostgreSQL 9.6 vient une solution plus simple. Le manuel décrit la possibilité d'omettre la limite inférieure et/ou supérieure du spécificateur de tranche, qui est alors par défaut l'indice minimum ou maximum du tableau.

Exemple

Pour normaliser un tableau littéral avec des indices non uniformes :

SELECT (my_arr[:]);
Copier après la connexion

Dans notre exemple, les parenthèses sont nécessaires pour lever l'ambiguïté :

SELECT ('[5:7]={1,2,3}'::int[][:]);
Copier après la connexion

Cette syntaxe simplifiée permet d'obtenir des performances similaires à celles des solutions antérieures. Pour les versions antérieures de PostgreSQL (9.5 ou antérieures), il est toujours recommandé d'utiliser array_lower et array_upper et un indice maximum fixe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal