如何将函数与表连接起来,并将表列作为参数传递给雪花中的函数

Posted

技术标签:

【中文标题】如何将函数与表连接起来,并将表列作为参数传递给雪花中的函数【英文标题】:How to join a function with a table and pass table columns as parameter to that function in snowflake 【发布时间】:2021-02-26 10:14:53 【问题描述】:

如何将函数与表连接起来并将表列作为参数传递给该函数。

虽然使用常见的语法,例如:

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

我收到错误:

SQL 错误 [2031] [42601]:SQL 编译错误: 无法评估不受支持的子查询类型

【问题讨论】:

我们需要更多信息来调试 - 它是否适用于一个简单的函数?可以分享一下功能吗? 【参考方案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;

【讨论】:

以上是关于如何将函数与表连接起来,并将表列作为参数传递给雪花中的函数的主要内容,如果未能解决你的问题,请参考以下文章

如何循环遍历动态大小的数组并将属性作为参数传递给可变参数函数?

如何将文件路径作为 bash 脚本中的参数传递给函数? [复制]

SQLAlchemy ORM如何将查询与表连接起来

如何将 unique_ptr 对象作为参数传递给作为库的类

如何将参数传递给 Python 模块中的主函数?

将对象参数传递给主函数 Java