Попытка получить список всех возможных комбинаций из 2 массивов, переданных в PostgreSQL, например:
create function foobar(
_foo varchar(250)[],
_bar varchar(250)[] ) returns table
(
foo varchar(250),
bar varchar(250)
) as $$
begin
return query
select distinct
???,
???
from
??? cross join
???;
end;
$$ language plpgsql;
... поэтому, если я попытаюсь:
select * from foobar('{"1", "2", "3", "4"}', '{"5", "6", "7", "8"}');
... Я бы получил набор результатов, похожий на этот:
foo bar
1 5
1 6
1 7
1 8
2 5
2 6
...
как бы выглядел этот запрос?Кажется, что PostgreSQL будет поддерживать что-то вроде этого, но я не знаю, как спрашивать с возможностью поиска.
Спасибо!
UPDATE С помощью ФрэнкаЯ смог сгенерировать запрос, который искал.Как отдельный запрос, он выглядит так:
select distinct
foo, bar
from unnest(cast('{"1", "2", "3", "4"}' as varchar(250)[])) as foo
cross join unnest(cast('{"5", "6", "7", "8"}' as varchar(250)[])) as bar;
Получается именно тот результат, который я искал.