Maison >base de données >tutoriel mysql >Comment puis-je normaliser les indices de tableau PostgreSQL pour qu'ils commencent à 1 ?

Comment puis-je normaliser les indices de tableau PostgreSQL pour qu'ils commencent à 1 ?

DDD
DDDoriginal
2025-01-09 12:16:45400parcourir

How Can I Normalize PostgreSQL Array Subscripts to Start at 1?

Standardisation des indices de tableau PostgreSQL pour commencer à 1

La flexibilité de PostgreSQL permet aux indices de tableau de commencer à n'importe quel nombre. Cependant, normaliser les tableaux pour qu'ils commencent à l'index 1 est souvent bénéfique.

Méthode plus ancienne

Avant Postgres 9.6, une solution de contournement était nécessaire :

<code class="language-sql">SELECT ('[5:7]={1,2,3}'::int[])[array_lower('[5:7]={1,2,3}'::int[], 1):array_upper('[5:7]={1,2,3}'::int[], 1)]</code>

Approche simplifiée (Postgres 9.6 et versions ultérieures)

Postgres 9.6 a introduit une méthode plus concise et efficace :

<code class="language-sql">SELECT my_arr[:];</code>

Pour les littéraux de tableau explicites, utilisez des parenthèses pour plus de clarté :

<code class="language-sql">SELECT ('[5:7]={1,2,3}'::int[])[:];</code>

Cette approche rationalisée offre des performances comparables à l'ancienne méthode, ce qui en fait la solution recommandée pour Postgres 9.6 et les versions ultérieures.

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:
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