Как объединить функцию с таблицей и передать столбцы таблицы в качестве параметра этой функции в снежинке

Как соединить функцию с таблицей и передать столбцы таблицы в качестве параметра этой функции.

При использовании общего синтаксиса, например:

select * 
    from favorite_years y join table(favorite_colors(y.year)) c;

Я получаю сообщение об ошибке:

Ошибка SQL [2031] [42601]: ошибка компиляции SQL: неподдерживаемый тип подзапроса не может быть оценен


person vino mukesh    schedule 26.02.2021    source источник
comment
нам нужно больше информации для отладки - работает ли она с простой функцией? можешь поделиться функцией?   -  person Felipe Hoffa    schedule 26.02.2021


Ответы (1)


Мне удалось заставить этот пример табличной функции работать правильно:

create or replace function favorite_colors ( year number )
  returns table (color string)
as 
 'select color from colors where yearid = YEAR';

create or replace table favorite_years (year integer);
insert into favorite_years values (2020),(2021),(2022);
create or replace table colors (yearid integer, color string);
insert into colors values (2021,'red'),(2022,'orange'),(2020, 'blue');


select * from favorite_years y join table(favorite_colors(y.year)) c;
person Rob Silva    schedule 28.02.2021