sql >> Databáze >  >> RDS >> PostgreSQL

Jak získat rozměrnost sloupce ARRAY?

Pro začátek se rozměrnost pole neodráží v datovém typu v Postgresu. Syntaxe integer[][] je tolerováno, ale ve skutečnosti je to jen integer[] interně.
Přečtěte si příručku zde.

To znamená, že rozměry se mohou lišit v rámci stejného datového typu (stejný sloupec tabulky).

Chcete-li získat skutečné rozměry konkrétní hodnoty pole :

SELECT array_dims(my_arr);  -- [1:2][1:3]

Nebo jen získat počet dimenzí:

SELECT array_ndims(my_arr);  -- 2

Pro podobné potřeby existuje více funkcí pole. Viz tabulku funkcí pole v příručce.

Související:

Pokud potřebujete vynutit určité dimenze ve sloupci, přidejte CHECK omezení . Vynucení 2-rozměrných polí:

ALTER TABLE tbl ADD CONSTRAINT tbl_arr_col_must_have_2_dims
CHECK (array_ndims(arr_col) = 2);


  1. SQLiteException:tabulka již existuje

  2. Odstraňte pomocí levého vnějšího spojení v Postgresu

  3. SQL vybere více řádků v jednom sloupci

  4. Jsou tyto dva dotazy stejné – GROUP BY vs. DISTINCT?