有没有办法选择*除了BigQuery中的[x,y,z列名]?我看到MySQL的一些解决方案,但不确定它是否适用于BQ。
谢谢。
答案 0 :(得分:46)
当前的BigQuery SQL方言中没有任何内容可以允许它。但由于这是经常性的请求,我们已添加工作项以支持
SELECT * EXCEPT (a, b, c) FROM ...
更新:此功能现在可在BigQuery标准SQL中使用。详情https://cloud.google.com/bigquery/sql-reference/enabling-standard-sql 使用公共维基百科表的示例 - 选择除标题和注释之外的所有列:
select * except(title, comment) from publicdata.samples.wikipedia limit 10
答案 1 :(得分:4)
除了SELECT * EXCEPT()
语法之外,还有一个SELECT * REPLACE()
语法 - 两者都支持引入标准SQL
根据文档
不太明显的是,你可以在同一SELECT
中同时使用它们,如下例所示
WITH orders AS
(SELECT 5 as order_id,
"sprocket" as item_name,
200 as quantity)
SELECT * EXCEPT (order_id) REPLACE ("widget" AS item_name), "more" as more_fields
FROM orders;