根据雪花中的条件选择列
Posted
技术标签:
【中文标题】根据雪花中的条件选择列【英文标题】:Select columns based on condition in Snowflake 【发布时间】:2020-07-13 13:09:42 【问题描述】:我正在尝试找到一种解决方案来根据条件选择 Snowflake 中的列。 例如,我只想选择包含字符串“id”的列或仅选择数字列。
这些情况有什么解决办法吗?
最好的问候
【问题讨论】:
答案是:WHERE
。如果您想要更具体的答案,请提供示例数据和对数据的更多说明。
【参考方案1】:
您可以使用以下内容。以下过程查询帐户使用模式并生成列列表,然后返回基于表和列类型的查询。这可以扩展
create or replace procedure column_list (TBL_NAME STRING, COL_TYPE STRING)
returns string
language javascript
as
$$
var sql_stmt = `select listagg(column_name,',') as col1 from snowflake.account_usage.columns
where table_name = 'FOO' and table_schema = 'PUBLIC' and DATA_TYPE = '` + COL_TYPE + `' and DELETED IS NULL;`;
var create_log_table_stmt = snowflake.createStatement( sqlText: sql_stmt );
var rs = create_log_table_stmt.execute();
rs.next();
var result = rs.getColumnValue(1);
var final_query = "select " + result + " from " + TBL_NAME;
return final_query;
$$
;
call column_list ('FOO', 'NUMBER');
【讨论】:
你这里说的是信息架构吗?我没有从你的问题中得到答案。你能在这里提供你正在尝试的代码吗? 是的,它以某种方式与信息模式有关。我还没有尝试过任何代码,因为我根本不知道什么样的函数才有意义。例如,我有一个包含 Varchar、Integer、Date 的表。现在我想选择所有 Integer 列。现在我想接收数据类型 Varchar 的所有列,而不在我的 Select 语句中提及所有列。以上是关于根据雪花中的条件选择列的主要内容,如果未能解决你的问题,请参考以下文章