gpt4 book ai didi

snowflake-cloud-data-platform - 捕获 select 语句中的所有列,但表中的列除外

转载 作者:行者123 更新时间:2023-12-05 01:24:01 30 4
gpt4 key购买 nike

有没有办法像我们在 bigquery 中那样选择除 Snowflake 中的一列以外的所有列? :

select * except(columnname) from table

最佳答案

2022 更新:Snowflake 现在支持 EXCLUDE():

测试:

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

enter image description here


上一个答案:

代替 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;

在消除与 except 子句匹配的值后,您可以使用它来获取要选择的列:

call cols_except('snowflake_sample_data.tpch_sf1.nation', 'N_NAME,N_REGIONKEY');

enter image description here

关于snowflake-cloud-data-platform - 捕获 select 语句中的所有列,但表中的列除外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71777309/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com