【发布时间】:2021-08-14 21:32:59
【问题描述】:
我正在使用 Snowflake 仓库中的 N 个表,其中 N 会随着时间的推移而任意增长。
我正在根据表列表动态创建 SQL 语句,SQL 脚本类似于:
SELECT * FROM table_1
UNION ALL
SELECT * FROM table_2
UNION ALL
...
SELECT * FROM table_n;
问题是表列表本身是动态设置的,有些表可能不存在。如果表不存在,我想在我的选择语句中简单地忽略它。所以像:
SELECT * FROM table_1 IF EXISTS table_1
UNION ALL
SELECT * FROM table_2 IF EXISTS table_2
UNION ALL
...
SELECT * FROM table_n IF EXISTS table_n;
有谁知道这种行为在 SQL / Snowflake 中是否可以实现?
为了记录,我使用模板系统dbt 循环每个表并将它们连接到一个表中。
【问题讨论】:
-
我是 SQL 的初学者 - 你有机会提供扩展答案吗?
-
使用 show 语句遍历数据库中的所有模式,例如(在模式
. 中显示表。您将获得其中的表列表并将此列表输入到您的脚本中。
标签: sql jinja2 snowflake-cloud-data-platform dbt