我有100个具有以下命名约定的表。
click001
click001_meta
click002
click002_meta
click003
click003_meta
click004
click004_meta
.........
.........
click00n
click00n_meta
我想使用bigquery(标准)中的通配符表查询这些表,但* _meta表除外。结果集只能来自(click001,click002,click003..click00n)
我已经尝试过类似的操作,但是结果仍然包含* meta表中的数据。
SELECT _TABLE_SUFFIX as tp, *
FROM `abc.clicks*`
WHERE NOT REGEXP_CONTAINS(_TABLE_SUFFIX, "_[a-zA-Z][a-zA-Z][a-zA-Z][a-zA-Z]")
我们在标准方言中有什么解决方案吗?
答案 0 :(得分:0)
在正则表达式中,int Search(int *tab, int tam, int valor);
int main(int argc, char** argv) {
int index;
int tab[5] = {12, 25, 3, 14, 18};
index = Search(tab, 7, 3);
if(index == 1)
printf("You found the value!!\n\n");
else
printf("NO LUCK!\n\n");
}
int Search(int *tab, int size, int value){
if(tab[size] == value)
return 1;
else
return Search(tab, size - 1, value);
}
表示“任何字符”,而不是下划线,因此您可能需要用反斜杠转义下划线。另外,您可能只将过滤器与_
一起使用:
LIKE
答案 1 :(得分:0)
#standardSQL
SELECT _TABLE_SUFFIX as tp, *
FROM `abc.click*`
WHERE REGEXP_CONTAINS(_TABLE_SUFFIX, r'\d$')
答案 2 :(得分:0)
待进一步调查(请参阅https://issuetracker.google.com/issues/111659626)
问题抱怨“我看到了排除表中的数据”,但实际上发生的是“我看到了排除表中的列”。发生这种情况是因为首先确定了架构-但没有数据通过筛选器。
您可以运行此测试吗?
SELECT _table_suffix ts
FROM `abc.clicks*`
WHERE _table_suffix NOT LIKE '%meta'
GROUP BY 1
这就是您需要排除“元”表的全部。如果查询结果带任何带有“ meta”后缀的表,请以工作ID答复以提交错误。