Tableau用户转BigQuery:如何编写WHERE子句排除含invalid的行?
在BigQuery中排除包含"invalid"的行
如果你的数据集里某字段存在含"invalid"的行,要在查询结果里排除这些行,BigQuery里有两种常用方法,对应你熟悉的Tableau Contains 函数:
方法1:使用REGEXP_CONTAINS(支持正则匹配)
这是最接近Tableau Contains 逻辑的写法,通过正则匹配判断字段是否包含目标文本,再加NOT反向筛选:
SELECT * FROM `your_project.your_dataset.your_table` WHERE NOT REGEXP_CONTAINS(your_column, 'invalid');
注:your_column替换成实际要检查的字段名,your_project.your_dataset.your_table替换成你的数据表路径。
方法2:使用LIKE(简单子串匹配)
如果只是简单的子串匹配,用LIKE更直观,通配符%表示任意字符(包括空字符):
SELECT * FROM `your_project.your_dataset.your_table` WHERE your_column NOT LIKE '%invalid%';
两者区别
LIKE语法更简单,适合基础的子串匹配场景;REGEXP_CONTAINS支持正则表达式,能处理更复杂的匹配规则(比如区分大小写、匹配特定位置的文本等)。
针对你给出的示例数据,假设字段是value_str,用上述任意方法查询后,返回结果为:
100 - 100 - 100
200 - 100 - 100
内容的提问来源于stack exchange,提问作者DayWalker
相关产品推荐
相关产品推荐

