根据雪花中的条件选择列

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 语句中提及所有列。

以上是关于根据雪花中的条件选择列的主要内容,如果未能解决你的问题,请参考以下文章

如何根据其他列中的条件从某个 ID 中选择所有值?

如何根据附加条件计算列中的价格?

使用雪花中的合并将值插入表并根据条件删除行

根据列中的条件对数据框中的行进行子集/过滤

Pandas DataFrame:根据条件替换列中的所有值

根据熊猫中多列的条件(最大值)替换列中的值