为了节省时间,我需要一次查询不同的表。表名如下
abc_yyyymmdd
可以很容易地使用
table_date_range(abc_,timestamp('2016-01-01'),timestamp('2016-03-12'))
但是我有不同的格式表名
abc_mm_dd_yyyy
是否有一种使用table_date_range在这些表中查询的方法。
发布于 2016-06-17 15:24:44
在Legacy SQL中,您可以为此使用TABLE_QUERY。
所以它可以像下面这样
SELECT *
FROM (
TABLE_QUERY(YourDataset, 'LEFT(table_id, 4) = "abc_" AND LENGTH(table_id) = 14
AND CONCAT(SUBSTR(table_id,11,4),'-',SUBSTR(table_id,5,2), -",SUBSTR(table_id,8,2))
BETWEEN "2016-01-01" AND "2016-03-12"')
)
发布于 2016-06-17 14:16:41
如果可以使用标准SQL,则可以使用_TABLE_SUFFIX伪列处理任何表名格式。
Is there an equivalent of table wildcard functions in BigQuery with standard SQL?
在这种情况下,应该是这样的:
SELECT ... FROM `mydataset.abc_2016_*` WHERE _TABLE_SUFFIX = '01-01' or _TABLE_SUFFIX = '03-12'
https://stackoverflow.com/questions/37883604
复制相似问题