您有没有办法以编程方式检测查询字符串是否为旧版或SQL-2011语法?我知道前者使用python main.py
表示引用,而后者使用[project:dataset.table]
,但这似乎不太可靠。
答案 0 :(得分:4)
在所有情况下都无法从查询文本中分辨出来,这就是为什么BigQuery在UI中具有“使用旧版SQL”复选框以及查询API的use_legacy_sql
选项。例如,请考虑以下查询:
SELECT *
FROM (SELECT 1 AS x), (SELECT 2), (SELECT 3);
尽管查询在两种方言中都有效,但结果却截然不同。
标准SQL查询仍然可以包含[]
,例如对于数组文字。
答案 1 :(得分:1)