web-dev-qa-db-ja.com

Google BigQueryの一部を除くすべての列を選択しますか?

BigQueryの[x、y、z列名]を除く*を選択する方法はありますか? MySQLのソリューションはいくつかありますが、BQに適用されるかどうかはわかりません。

ありがとうございました。

22
wubr2000

現在の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
55

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;
4