Mega Code Archive

 
Categories / PostgreSQL / Array
 

An array slice is denoted by writing lower-bound

postgres=# postgres=# postgres=# CREATE TABLE sal_emp ( postgres(#    name            text, postgres(#    pay_by_quarter  integer[], postgres(#    schedule        text[][] postgres(# ); CREATE TABLE postgres=# postgres=# INSERT INTO sal_emp postgres-#    VALUES ('Bill', postgres(#    ARRAY[10000, 10000, 10000, 10000], postgres(#    ARRAY[['meeting', 'lunch'], ['training', 'presentation']]); INSERT 0 1 postgres=# postgres=# INSERT INTO sal_emp postgres-#    VALUES ('Carol', postgres(#    ARRAY[20000, 25000, 25000, 25000], postgres(#    ARRAY[['breakfast', 'consulting'], ['meeting', 'lunch']]); INSERT 0 1 postgres=# postgres=# -- An array slice is denoted by writing lower-bound:upper-bound for one or more array dimensions. postgres=# postgres=# SELECT schedule[1:2][1:1] FROM sal_emp WHERE name = 'Bill';         schedule ------------------------  {{meeting},{training}} (1 row) postgres=# postgres=# postgres=# SELECT * FROM sal_emp;  name  |      pay_by_quarter       |                 schedule -------+---------------------------+-------------------------------------------  Bill  | {10000,10000,10000,10000} | {{meeting,lunch},{training,presentation}}  Carol | {20000,25000,25000,25000} | {{breakfast,consulting},{meeting,lunch}} (2 rows) postgres=# postgres=# postgres=# drop table sal_emp; DROP TABLE postgres=# postgres=# postgres=#