Rob Sargent <robjsargent@gmail.com> writes:
> Given an array of arrays ( e.g. v = {{1,'a'},{2,'b'},{3,'c'},{2,'d'}} )
> is it possible, in plain sql, to access the first element of the listed
> arrays using the IN function?
If it's actually a 2-D array, and not an array-of-composite which is
what your sample data seems to suggest, then array slicing might help:
regression=# select ('{{1,2},{3,4},{5,6}}'::int[])[:][1];
int4
---------------
{{1},{3},{5}}
(1 row)
regression=# select 2 = any (('{{1,2},{3,4},{5,6}}'::int[])[:][1]);
?column?
----------
f
(1 row)
regression=# select 3 = any (('{{1,2},{3,4},{5,6}}'::int[])[:][1]);
?column?
----------
t
(1 row)
regards, tom lane