@MaksPaks

Как объявить массив строк и использовать его в запросе (PostgreSQL)?

Есть таблица с ключами в формате 'ABCDEF'.
Нужно составить запрос который предполагает много раз обращаться к одному и тому же списку ключей и чтобы избежать повторного указания одного и того же набора данных в виде
key in ('AAAABB', 'AAABBB')
попробовал использовать массив ключей, который объявляется заранее и указывается в запросе
key in (array)
Гуглёж привёл к чему-то такому:
WITH
     some_data AS ( SELECT ARRAY['AAAABB', 'AAABBB'] AS some_value )
SELECT *
FROM table1
WHERE table1.key in (some_data.some_value)
group by some_data.some_value;

Но это не работает, возникает ошибка ERROR: missing FROM-clause entry for table "some_data"

Попробовал научиться работать с переменными отличными от массива и это работает:
WITH myconstants (var1) as (
   values ('AAAABB')
)
SELECT *
FROM table1, myconstants
WHERE table1.key = var1;

Где я допускаю ошибку при работе с массивами и как её можно исправить?
  • Вопрос задан
  • 201 просмотр
Решения вопроса 1
iMedved2009
@iMedved2009
Не люблю людей
WITH
     some_data AS ( select val from unnest(ARRAY['AAAABB', 'AAABBB']) as val)
SELECT *
FROM some_data;

https://sqlize.online/sql/psql15/deeb70220423743fe...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы