Row and Array Comparisons
http://www.postgresql.org/docs/9.3/static/functions-comparisons.html#AEN18448
Row-wise Comparison:
row与row的比较可以使用符号:
=, <>, <, <=, > or >=
digoal=# select row(a.foosubid) from foo a limit 1;
row
-----
(2)
(1 row)
digoal=# select row(a.foosubid) = row(2) from foo a limit 1;
?column?
----------
t
(1 row)
digoal=# select row(a.foosubid) = row('2') from foo a limit 1;
?column?
----------
t
(1 row)
digoal=# select row(a.foosubid) = row(22) from foo a limit 1;
?column?
----------
f
(1 row)
is distinct from:
digoal=# select row(a.foosubid) is distinct from row(1) from foo a limit 1; ?column? ---------- t (1 row) digoal=# select row(a.foosubid) is distinct from row(2) from foo a limit 1; ?column? ---------- f (1 row)
expression operator ANY (array expression) expression operator SOME (array expression)
expression operator ALL (array expression)
digoal=# create table tx (a int, b int[], c int[][]);
CREATE TABLE
digoal=# insert into tx values(1, '{1,2,3,4}', '{{1,2,3,4,5},{1,2,3,4,5}}');
INSERT 0 1
digoal=# insert into tx values(1, '{1,2,3,4}', '{{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}}');
INSERT 0 1
digoal=# insert into tx values(1, '{1,2,3,4}', '{{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{4,2}}');
ERROR: malformed array literal: "{{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5},{4,}}"
LINE 1: insert into tx values(1, '{1,2,3,4}', '{{1,2,3,4,5},{1,2,3,4...
^
digoal=# select * from tx;
a | b | c
---+-----------+---------------------------------------
1 | {1,2,3,4} | {{1,2,3,4,5},{1,2,3,4,5}}
1 | {1,2,3,4} | {{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}}
(2 rows)
digoal=# select c[1][1] from tx;
c
---
1
1
(2 rows)
digoal=# select c[0][0] from tx;
c
---
(2 rows)
digoal=# select c[1][2] from tx;
c
---
2
2
(2 rows)
digoal=# select * from tx where 4 =any( c);
a | b | c
---+-----------+---------------------------------------
1 | {1,2,3,4} | {{1,2,3,4,5},{1,2,3,4,5}}
1 | {1,2,3,4} | {{1,2,3,4,5},{1,2,3,4,5},{1,2,3,4,5}}
(2 rows)
digoal=# select * from tx where 4 =all( c);
a | b | c
---+---+---
(0 rows)
digoal=# insert into tx values(1, '{1,2,3,4}', array[[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]);
INSERT 0 1
digoal=# select 2= any( array(select fooid from foo));
?column?
----------
t
(1 row)

浙公网安备 33010602011771号