如何将字符串连接到 Snowflake 中的变量 SQL

How to concatenate strings to variables in Snowflake SQL

可以使用 Snowflake variables 确定来源 table,如下所示:

set src='some_table';
select count(*) from $src;

但是,我正在寻找一种方法来提供数据库名称作为变量并将其与 table 名称连接起来。伪代码:

set db='database';
select count(*) from $db.table_name; 

我该怎么做?我想将 databasetable_name 分开(所以设置 dbandtable=database.table_name 不是一个选项)。

好像select something from $src不行,所以需要使用Snowflaketable literals如下:

select something from table($src)

连接变量的完整示例如下所示:

set s_database='databasename';
set s_table=concat($s_database, '.tablename');
select count(*) from table($s_table);

你也可以使用IDENTIFIER语法,它更通用,你可以在其他地方使用它,比如

SELECT * FROM identifier($s_table);
DESC TABLE identifier($s_table);