Pkr*_*Pkr 5 snowflake-cloud-data-platform
有没有办法像我们在bigquery中那样选择除 Snowflake 中的一列之外的所有列:
select * except(columnname) from table
Run Code Online (Sandbox Code Playgroud)
测试:
with data as (
select 1 col_a, 2 col_b, 3 col_c, 4 col_d
)
select *, col_a as id
exclude (col_c, col_b, col_a)
from data
Run Code Online (Sandbox Code Playgroud)
我编写了一个存储过程来代替EXCEPT语法,它可以为您提供列列表SELECT:
create or replace procedure cols_except(table_name varchar, except varchar)
returns varchar
language sql as
begin
describe table identifier(:table_name);
return (
select listagg("name", ', ') cols_except
from table(result_scan(last_query_id()))
where not array_contains("name"::variant, (split(:except, ',')))
);
end;
Run Code Online (Sandbox Code Playgroud)
在消除与 except 子句匹配的值后,您可以使用它来获取要选择的列:
call cols_except('snowflake_sample_data.tpch_sf1.nation', 'N_NAME,N_REGIONKEY');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5984 次 |
| 最近记录: |