Select 列基于 Snowflake 中的条件

Select columns based on condition in Snowflake

我正在尝试根据条件找到 Snowflake 中 select 列的解决方案。 例如,我只想 select 包含字符串“id”的列或仅包含数字列。

这些情况有什么解决办法吗?

此致

您可以使用以下内容。以下过程查询帐户使用模式并生成列列表,然后 return 基于 table 和列类型的查询。这可以扩展

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');