首页 > 解决方案 > 如何将正则表达式过滤器放在 bigquery 的 where 子句中

问题描述

如何添加到 sql select 语句的 where 子句以匹配特定的正则表达式。

我有一张电话号码表。电话号码为 10 位数字。数据很脏,所以我不想选择不是这种格式的记录。像这样:

select * from Phones where Phones like `RegExp("^\\d{9}$")`;  <-- this doesn't work

谢谢

标签: regexgoogle-bigquery

解决方案


对于 BigQuery 标准 SQL - 在下面使用(假设您的正则表达式本身是正确的)

WHERE REGEXP_CONTAINS(Phones, r'^\d{10}$')   

上面将过滤掉电话不是 10 位字符串的任何行


推荐阅读