我正在尝试使用BigQuery中的标准SQL查询Bigtable列值:
#standardSQL
SELECT
default.blah.cell.value
FROM
mycategory.mytable
WHERE
rowkey LIKE '123%'
我收到错误:
Error: Syntax error: Unexpected keyword DEFAULT at [3:3]
上述查询在旧版SQL中可以正常运行,但在标准SQL中则不能。
仅选择行键可以在#standardSQL中起作用:
#standardSQL
SELECT
rowkey
FROM
mycategory.mytable
WHERE
rowkey LIKE '123%'
由于本文中的第一个查询正在尝试执行操作,如何在标准SQL中选择列值?
答案 0 :(得分:3)
问题在于DEFAULT
是reserved keyword,因此您需要使用反引号对其进行转义。例如:
#standardSQL
SELECT
`default`.blah.cell.value
FROM
mycategory.mytable
WHERE
rowkey LIKE '123%'
编辑:由于cell
是一个数组类型字段,如果目标是从数组中读取值,则应该使用ARRAY
函数:
#standardSQL
SELECT
ARRAY(SELECT value FROM UNNEST(`default`.blah.cell)) AS values
FROM
mycategory.mytable
WHERE
rowkey LIKE '123%'
您可以在文档中找到有关working with arrays的更多信息。