如何在BigQuery标准SQL中查询Bigtable列值?

时间:2018-07-03 16:38:34

标签: google-bigquery google-cloud-bigtable

我正在尝试使用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中选择列值?

1 个答案:

答案 0 :(得分:3)

问题在于DEFAULTreserved 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的更多信息。