Sql 具有正则表达式和日期范围的BigQuery通配符表

Sql 具有正则表达式和日期范围的BigQuery通配符表,sql,google-bigquery,wildcard,Sql,Google Bigquery,Wildcard,有没有可能把这两种方法结合起来 我已经看了一遍,但似乎没有完全涵盖我的用例 我有以下格式的表名:s\u CUSTOMER\u ID\u YYYYMMDD 我可以使用以下方法查找客户ID的所有表: SELECT * FROM TABLE_QUERY([project:dataset], 'REGEXP_MATCH(table_id, r"^s_CUSTOMER_ID")') 我可以通过以下方式找到日期范围内的所有表格: SELECT * FROM (TABL

有没有可能把这两种方法结合起来

我已经看了一遍,但似乎没有完全涵盖我的用例

我有以下格式的表名:
s\u CUSTOMER\u ID\u YYYYMMDD

我可以使用以下方法查找客户ID的所有表:

SELECT *
FROM TABLE_QUERY([project:dataset], 
                 'REGEXP_MATCH(table_id, r"^s_CUSTOMER_ID")')
我可以通过以下方式找到日期范围内的所有表格:

SELECT * 
FROM (TABLE_DATE_RANGE([project:dataset],
                       TIMESTAMP('2016-01-01'),
                       TIMESTAMP('2016-03-01')))
但是我如何同时查询这两个呢

我尝试使用如下子查询:

SELECT * FROM    
    (SELECT *
    FROM TABLE_QUERY([project:dataset], 
                     'REGEXP_MATCH(table_id, r"^s_CUSTOMER_ID")'))
    ,(SELECT * 
    FROM (TABLE_DATE_RANGE([project:dataset],
                           TIMESTAMP('2016-01-01'),
                           TIMESTAMP('2016-03-01'))))
…但解析器抱怨出现
错误:无法解析表:项目:数据集

添加一个点,使其成为
project:dataset。
将产生一个错误
error:error准备辅助查询:dataset项目:dataset。未找到

我的桌名做得不好吗?如果是这样的话,有什么更好的方法来组织它们呢?

下面的“快速解决方案”应该有效,您可以根据实际/额外的需求来改进它

SELECT *
FROM 
  TABLE_QUERY([project:dataset], 
    'REGEXP_MATCH(table_id, r"^s_CUSTOMER_ID") 
    AND RIGHT(table_id, 8) BETWEEN "20160101" AND "20160301"')