Google bigquery BigQuery-REGEXP_包含删除空值
我试图排除网站中包含xyz和123的行。但是,该查询也排除了具有空值的行。因此,它返回的不是4行,而是3行,即数字6被排除在外 有人能说出问题的原因和正确的解决方案吗 我不想使用NOT IN,因为我的排除条件是一个很长的列表,所以我认为REGEXP_CONTAINS是唯一的出路。如果有任何其他字符串函数,请建议 使用的查询:Google bigquery BigQuery-REGEXP_包含删除空值,google-bigquery,Google Bigquery,我试图排除网站中包含xyz和123的行。但是,该查询也排除了具有空值的行。因此,它返回的不是4行,而是3行,即数字6被排除在外 有人能说出问题的原因和正确的解决方案吗 我不想使用NOT IN,因为我的排除条件是一个很长的列表,所以我认为REGEXP_CONTAINS是唯一的出路。如果有任何其他字符串函数,请建议 使用的查询: SELECT number,source,detail,website FROM `tablename` where not REGEXP_CONTAINS(website
SELECT number,source,detail,website FROM `tablename` where not REGEXP_CONTAINS(website, r'xyz') and not REGEXP_CONTAINS(website, r'123')
它应该排除
NULL
如果希望
NULL
行,则需要添加或逻辑列为NULL
应该排除NULL
如果希望NULL
行,则需要添加或逻辑列为NULL
当应用于NULL
值时,BigQuery
的regexp\u包含函数,返回NULL
。在您的情况下,当对NULL
值应用和和非
操作时,该值不会更改。尽管如此,WHERE
子句将NULL
值视为false
如果要保留假值,应执行以下操作:
SELECT number,source,detail,website FROM `tablename` where (not REGEXP_CONTAINS(website, r'xyz') and not REGEXP_CONTAINS(website, r'123')) or website is NULL
我希望当应用于NULL
值返回NULL
时,BigQuery
的regexp\u包含
函数,这会有所帮助。在您的情况下,当对NULL
值应用和和非
操作时,该值不会更改。尽管如此,WHERE
子句将NULL
值视为false
如果要保留假值,应执行以下操作:
SELECT number,source,detail,website FROM `tablename` where (not REGEXP_CONTAINS(website, r'xyz') and not REGEXP_CONTAINS(website, r'123')) or website is NULL
我希望有帮助