我们尝试从 BigQuery 中仅包含百分号“%”的字段中选择行。
我们已经尝试过各种其他问题的答案,如下所示:
SELECT COUNT(1) FROM Table WHERE field_name LIKE "\%"
这会产生带有单引号或双引号的无效转义字符错误。
我们还尝试了针对其他 SQL 风格显示的其他变体转义字符:
SELECT COUNT(1) FROM Table WHERE field_name LIKE "!%"
这给了我们零结果,因为它与带有百分号的行不匹配。
我们在传统 SQL 和标准 SQL 中尝试了这些查询。
如何在 BigQuery(和/或旧版 SQL)的标准 SQL 中转义 SELECT/WHERE 语句的百分号?
最简单的修复如下
SELECT COUNT(1) FROM Table WHERE field_name LIKE '%\\%%'
同时,另一种选择是使用REGEXP_CONTAINS
函数(BigQuery 标准 SQL)
SELECT COUNT(1) FROM Table WHERE REGEXP_CONTAINS(field_name, r'%')
对于 BigQuery Legacy SQL - 您应该使用REGEXP_MATCH
代替REGEXP_CONTAINS
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)