Google 大查询,将遗留 sql 转换为标准 sql

Google Big Query, convert legacy sql to standard sql

我正在尝试将 LegacySql 查询转换为 StandardSQL

SELECT  * FROM 
TABLE_QUERY([prod-chap_out],'REGEXP_MATCH(table_id, r"OUT\d+$")') 

此查询在旧版 SQL 中运行良好,但在 API 中使用时无法转换为 json 响应。我宁愿将其序列化为 json,也不愿使用一堆数据表和转换值。

如何将其转换为标准SQL?

我试过了

REGEXP_CONTAINS(table_id, r"OUT\d+$"))

但我收到错误消息 \d is an illegal character。

您可以在 FROM 中使用通配符 * 并在 WHERE 中使用生成的伪列 _table_suffix:

SELECT
  * 
FROM 
  `<project-id>.<dataset-id>.<table-prefix>*`
WHERE 
  REGEXP_MATCH(_table_suffix, r"OUT\d+$") 

我不完全确定你的 table 名字是什么样的 - 这是关于转换到标准 SQL 的官方文档:https://cloud.google.com/bigquery/docs/reference/standard-sql/wildcard-table-reference#the_table_query_function