PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Tablice wielowymiarowe PostgreSQL

Tablica Postgres elementy są zawsze elementami podstawowymi , czyli skalarny wartości. Tablice podrzędne nie są „elementami” w Postgresie. Plasterki tablicy zachowują oryginalne wymiary.

Możesz wyodrębnić element podstawowy , który jest wartością typu danych elementu skalarnego.
Możesz też wyodrębnić wycinek tablicy , który zachowuje oryginalny typ danych tablicy, a także oryginalne wymiary tablicy.

Twój pomysł na pobranie podtablicy jako „elementu” byłby z tym sprzeczny i po prostu nie został zaimplementowany.

Podręcznik może być jaśniejszy w wyjaśnieniu. Ale przynajmniej możemy znaleźć:

Twój pierwszy przykład próbuje odwołać się do elementu podstawowego, który nie został znaleziony (potrzebne byłyby dwa indeksy tablicy w tablicy 2-D). Więc Postgres zwraca NULL.
Twój trzeci przykład po prostu zawija wynikowy NULL w nową tablicę.

Aby spłaszczyć wycinek tablicy (uczyń go tablicą 1-D), możesz unnest() i przekaż wynikowy zestaw do nowego ARRAY konstruktor . Albo w skorelowanym podzapytaniu, albo w LATERAL dołącz (wymagana strona 9.3+). Demonstracja obu:

SELECT s.col[2:2][2:3] AS slice_arr
     , x.lateral_arr
     , ARRAY(SELECT unnest(s.col[2:2][2:3])) AS corr_arr
FROM  (SELECT ARRAY[[1,2,3],[4,5,6]] AS col) s
     , LATERAL (SELECT ARRAY(SELECT * FROM unnest(s.col[2:2][2:3])) AS lateral_arr) x;

I koniecznie przeczytaj aktualną wersję podręcznika . Twoje referencje wskazują na Postgres 9.1, ale są szanse, że faktycznie używasz Postgresa 9.4.

Powiązane:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wielkość liter nie jest wrażliwa jak (ilike) w Datamapperze z Postgresql

  2. Jak zwrócić wynik SELECT wewnątrz funkcji w PostgreSQL?

  3. PostgreSQL - powtarzanie wierszy z LIMIT OFFSET

  4. Funkcja agregacji, aby uzyskać różnicę lub stosunek dwóch wierszy w kolejności

  5. oblicz sumę wartości powiązanych z nakładającymi się zakresami dat