如何在 BigQuery 标准 SQL 中查询 Bigtable 列值?
How can I query a Bigtable column value in BigQuery standard SQL?
我正在尝试在 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 中运行不正常。
仅选择 rowkey 在#standardSQL 中有效:
#standardSQL
SELECT
rowkey
FROM
mycategory.mytable
WHERE
rowkey LIKE '123%'
我如何 select 标准 SQL 中的列值,正如此 post 中的第一个查询尝试做的那样?
问题是 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 的更多信息。
我正在尝试在 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 中运行不正常。
仅选择 rowkey 在#standardSQL 中有效:
#standardSQL
SELECT
rowkey
FROM
mycategory.mytable
WHERE
rowkey LIKE '123%'
我如何 select 标准 SQL 中的列值,正如此 post 中的第一个查询尝试做的那样?
问题是 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 的更多信息。