# BigQueryフォーマッター

アナリストやデータエンジニアがクエリを確認しやすいよう、Google BigQuery Standard SQLをBigQueryのルールに従って整形します。バッククォートで囲まれたproject.dataset.table名、三重引用符やraw文字列、#コメント、@queryパラメーターに対応しています。QUALIFYは独立した行に配置し、SELECT * EXCEPTとREPLACEは同じ行に保ち、ウィンドウ句をインデントします。閉じていない文字列、コメント、括弧は、行と列を示して報告します。

## よくある質問

### どのようなBigQuery構文に対応していますか？

`project.dataset.table`のようなバッククォートで囲まれた名前、バックスラッシュエスケープを含む単一引用符や二重引用符の文字列、三重引用符の文字列、raw文字列のr''とバイト列のb''接頭辞を認識します。@namedパラメーターと@@system変数は入力どおりに保持されます。

### フォーマッターはハッシュコメント（#）を保持しますか？

はい。BigQueryでは#コメントに加えて、--コメントと/* */コメントも使用できます。いずれも位置を保ちます。

### QUALIFYはどのように処理されますか？

QUALIFYはWHEREやHAVINGと同様に独立した行に配置されます。フィルター条件はその下にインデントされます。

### SELECT * EXCEPTとREPLACEはどうなりますか？

EXCEPTまたはREPLACEがアスタリスクの後に続く場合は、アスタリスクと同じ行に保持されます。これにより、SELECT * EXCEPT (col)がEXCEPT集合演算子と誤認されるのを防ぎます。

### 配列と構造体はそのまま保持されますか？

はい。arr[OFFSET(0)]のような配列の添字は入力どおりに保持され、STRUCTとARRAYのコンストラクターは他の関数呼び出しと同様に整形されます。

### ウィンドウ関数はどのように配置されますか？

長いOVER句はインデントされたブロックになり、PARTITION BYとORDER BYはそれぞれ独立した行に配置されます。短い句は同じ行に保たれます。

### キーワードの大文字と小文字は変わりますか？

いいえ。キーワード、関数、名前の大文字・小文字は入力時のまま保持されます。変更されるのは空白と改行だけです。

### どのようなエラーが検出されますか？

閉じていない文字列、三重引用符付き文字列、バッククォートで囲まれた名前、ブロックコメント、対応していない括弧を、行番号と列番号とともに報告します。クエリはBigQueryに送信されず、費用もかかりません。

### 入力の最大サイズはどれくらいですか？

1リクエストあたり最大1 MB、1ステートメントあたり最大128 KBです。ステートメントが多いスクリプトは、1つずつフォーマットされます。

### インデントを選択できますか？クエリは保存されますか？

スペース2個または4個、あるいはタブを使用できます。クエリはメモリ上でのみフォーマットされ、保存されません。

ここに広告を掲載しませんか？

[メールでお問い合わせ](mailto:hi@dennn.is?subject=OneClick%20Pro%E3%81%A7%E3%81%AE%E5%BA%83%E5%91%8A%E6%8E%B2%E8%BC%89)

[広告 WordPress向けのエージェント対応プラグインスイート。](https://sleekwp.com/?ref=oneclickpro)
