建立表:

CREATE TABLE sal_emp (
name text,
pay_by_quarter integer[],
schedule text[][]
);

插入数据:

INSERT INTO sal_emp
VALUES ('Bill',
ARRAY[10000, 11000, 9000, 13000],
ARRAY[['meeting', 'lunch'], ['training', 'presentation']]); INSERT INTO sal_emp
VALUES ('Carol',
ARRAY[20000, 25000, 25000, 25000],
ARRAY[['breakfast', 'consulting'], ['meeting', 'lunch']]); INSERT INTO sal_emp
VALUES ('Frank',
ARRAY[10000, 10000, 10000, 10000],
ARRAY[['breakfast', 'training'], ['meeting', 'lunch']]);

查看:

pgsql=# SELECT * FROM sal_emp;
name | pay_by_quarter | schedule
-------+---------------------------+-------------------------------------------
Bill | {10000,11000,9000,13000} | {{meeting,lunch},{training,presentation}}
Carol | {20000,25000,25000,25000} | {{breakfast,consulting},{meeting,lunch}}
Frank | {10000,10000,10000,10000} | {{breakfast,training},{meeting,lunch}}
(3 rows) pgsql=#

用Any来查询:

pgsql=# SELECT * FROM sal_emp WHERE 10000 = ANY (pay_by_quarter);
name | pay_by_quarter | schedule
-------+---------------------------+-------------------------------------------
Bill | {10000,11000,9000,13000} | {{meeting,lunch},{training,presentation}}
Frank | {10000,10000,10000,10000} | {{breakfast,training},{meeting,lunch}}
(2 rows) pgsql=#

用ALL来查询:

pgsql=# SELECT * FROM sal_emp WHERE 10000 = ALL (pay_by_quarter);
name | pay_by_quarter | schedule
-------+---------------------------+----------------------------------------
Frank | {10000,10000,10000,10000} | {{breakfast,training},{meeting,lunch}}
(1 row) pgsql=#

用下标来查询:

pgsql=# SELECT * FROM sal_emp WHERE 9000 = pay_by_quarter[];
name | pay_by_quarter | schedule
------+--------------------------+-------------------------------------------
Bill | {10000,11000,9000,13000} | {{meeting,lunch},{training,presentation}}
(1 row) pgsql=#
04-17 07:14