Re: access sub elements using any()

From: "Torsten Grust" <teggy(at)fastmail(dot)com>
To: "Rob Sargent" <robjsargent(at)gmail(dot)com>, pgsql-sql <pgsql-sql(at)lists(dot)postgresql(dot)org>
Subject: Re: access sub elements using any()
Date: 2022-10-31 22:36:56
Message-ID: 31612ff3-67a4-4781-b359-0d182f73fe84@betaapp.fastmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hi,

On Mon, Oct 31, 2022, at 18:04, Rob Sargent wrote:
> 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? Say I wanted just those with 2 as first element. "where 2 = any(v[1])" does not work and not sure it's supported. And I cannot craft a lhs to fussy-match each of the elements in v. Can this be done?

if your inner arrays would be row values instead, i.e. if v would read

v = array[(1,'a'),(2,'b'),(3,'c'),(2,'d')] :: t[]
assuming CREATE TYPE t AS (x int, y text);

then your query could simply be

SELECT r.*
FROM unnest(v) AS r
WHERE r.x = 2;

Cheers,
—Torsten

--
| Torsten Grust
| teggy(at)fastmail(dot)com

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Rob Sargent 2022-10-31 22:40:20 Re: access sub elements using any()
Previous Message Rob Sargent 2022-10-31 17:04:00 access sub elements using any()