首页 文章

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

提问于
浏览
0

我正在尝试使用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中只选择 does 中的rowkey:

#standardSQL
SELECT
  rowkey
FROM
  mycategory.mytable
WHERE
  rowkey LIKE '123%'

如何在标准SQL中选择列值,因为此帖子中的第一个查询正在尝试执行此操作?

1 回答

  • 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的更多信息 .

相关问题