Как получить все элементы определенного столбца из массива произвольного типа в Postgres - PullRequest
0 голосов
/ 27 мая 2020

Я создал собственный тип в Postgres, используя

CREATE TYPE public.slot AS (start_time time, end_time time);

В таблице campaigns Я создал slots_of_day как array вышеупомянутого настраиваемого типа.

Я бы хотел получить запрос, который возвращает все start_time из slots_of_day, чтобы я мог выполнить оператор сравнения с ANY. Что-то вроде current_time < ANY(query to fetch all start time)

Есть ли способ сделать это в Postgres?

1 Ответ

2 голосов
/ 27 мая 2020

С:

select * from campaigns;
 id |                 slots_of_day                  
----+-----------------------------------------------
  1 | {"(00:00:01,00:01:00)"}
  2 | {"(00:01:01,00:02:00)","(00:02:01,00:03:00)"}
(2 rows)

Вы можете получить:

select (unnest(slots_of_day)::slot).start_time from campaigns;
 start_time 
------------
 00:00:01
 00:01:01
 00:02:01
(3 rows)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...