PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Normalisieren Sie Array-Indizes für eindimensionale Arrays, sodass sie mit 1 beginnen

Es gibt eine einfachere Methode, die hässlich ist, aber meiner Meinung nach technisch korrekt ist:Extrahieren Sie den größtmöglichen Slice aus dem Array, im Gegensatz zum exakten Slice mit berechneten Grenzen. Sie vermeidet die beiden Funktionsaufrufe.

Beispiel:

select ('[5:7]={1,2,3}'::int[])[-2147483648:2147483647];

ergibt:

  int4   
---------
 {1,2,3}