こんにちは。バンです。
皆さん BigQuery 使ってますか??僕は使ってますよ
BigQuery 使う上での小ネタシリーズです
まあBigQueryに限った話ではないのですが。。
問題
sample.dataset.table
というテーブルがあったときに、下記のクエリを走らせると
SELECT following
from `sample.dataset.table`
こんなエラーが出ます
Syntax error: Expected end of input but got keyword FOLLOWING at [xxxx]
何が悪いかわかりますか?というやつです。
答え
小ネタはあっさりが信条ですのであっさり答えを言うと、
FOLLOWING
が BigQuery においては 予約語 です。
予約語とは
AND
とか、 SELECT
のように予め特殊な意味を持つ言葉として定められているものです。python なら if とか。
ちなみに BigQuery の予約語一覧は下記で確認できます!
BigQuery の予約語リスト
でも予約語をカラム名にしちゃった…
困りますね。こういうときは `(Backtick) で囲えばOKです。(ちなみにLegacyのときは[]でした。)
なので、修正するなら下記のように。
SELECT `following`
from `sample.dataset.table`
ただ、これで囲うとBigQueryのGUI上でシンタックスハイライトがちゃんと効いて色が変わらないのでちょっと不安になりますが、普通に動きます。
本当はそこらへんの感覚をもってカラム名を設定してほしいですがまあ、どうしようもないときもあるでしょうというところで…
いとめでたし。