snowflake-cloud-data-platform - 我们可以在 Snowflake 中使用参数化 View 吗?

标签 snowflake-cloud-data-platform

我们可以在 Snowflake 中使用参数化 View 吗?比如传递表名或数据库名作为参数而不是硬编码吗?

最佳答案

我认为你最好的选择是使用 session variables结合常规 View 。

session 变量可以在 View DDL 中引用,并且需要在查询 View 的任何 session 中设置。

为此,您可以使用 IDENTIFIER Snowflake 中的函数,它允许您使用文本作为对象标识符。

create table t1 (col1 number, col2 number);
create table t2 (col1 number, col2 number);


set ti = 't1';
create view v1 as select col1, col2 from identifier($ti);

在查询 View 之前,您需要将 session 变量(在本例中为 ti)设置为表名(如果需要是完全限定的)。
set ti = 't1';
select * from v1; -- returns data from t1

set ti = 't2';
select * from v1; -- returns data from t2

关于snowflake-cloud-data-platform - 我们可以在 Snowflake 中使用参数化 View 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58556518/

相关文章:

snowflake-cloud-data-platform - 如何使用snowsql在给定日期范围内构造日期数组?

postgresql - CSV 中引用的雪花空值破坏了 PostgreSQL 卸载

time-series - 我可以将时间序列数据存储在数据仓库中吗?

SQL:在 CTE 内构建可变输入数字的数字表

snowflake-cloud-data-platform - 有没有办法现在(在下一个预定时段之前)强制运行雪花的任务?

snowflake-cloud-data-platform - Snowflake - 尝试将一行 csv 数据加载到 Variant - "Error parsing JSON:"

snowflake-cloud-data-platform - 雪花 - 查询角色的授权

sql - 创建连接两个数据库的表

sql - 如何在雪花中编写相关子查询

sql - 如何选择 SQL 计数中的第 n 个实例?