我们遗憾的是,我们有一个表格,其中的列已经用字段名称“OR”编写。
如果我们尝试查询此表 - “SELECT OR FROM etc.”我们得到一个错误,因为OR是一个保留字。
我们如何使用BigQuery的旧SQL查询查询该列? (我们需要那个专栏而不是其他专栏。)
我们认为我们可以使用“SELECT *”和BigQuery的“排除”功能,但不是旧版SQL的一部分,因此我们无法使用它。其他想法?
答案 0 :(得分:2)
查询Hacker News数据集时遇到了这个问题。看来作者添加了一个“依据”列because they were replicating the API response keys。但是,很难查询和not best practice in database design。
我尝试了方括号:
SELECT
[by] as author_name
FROM
`bigquery-public-data.hacker_news.full`
LIMIT
1000
但收到以下错误:
Syntax error: Unexpected keyword BY at [2:4]
以下是使用标准SQL方言处理BigQuery中的Hacker News数据集的查询:
SELECT
b.by as author_name
FROM
`bigquery-public-data.hacker_news.full` as b
LIMIT
1000
答案 1 :(得分:0)
我们为此找到了another SO answer - 除了你需要对他们描述的内容做一些额外的事情。你不能只为名称添加括号 - 你还需要给它一个新的列名。
答案是这样查询:
SELECT [OR] AS new_column_name FROM ...
答案 2 :(得分:0)
我知道您正在寻找使用旧版SQL的答案(并且您使用括号语法找到了答案),但对于将来的读者,ContainsPrefix
,ContainsPrefix
等是有效的列名称查询结果为standard SQL。以下查询不会返回错误,例如:
prefix