如何在bigquery查询中转义百分号?

wtzytmuj  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(299)

我们正试图从bigquery中只包含百分号“%”的字段中选择行。
我们试着回答其他各种问题,以便像这样逃跑: SELECT COUNT(1) FROM Table WHERE field_name LIKE "\%" 这会产生带有单引号或双引号的无效转义字符错误。
我们还尝试了为其他类型的sql显示的其他变体转义字符: SELECT COUNT(1) FROM Table WHERE field_name LIKE "!%" 这给了我们零的结果,因为它与带有百分号的行不匹配。
我们在遗留和标准sql中尝试了这些查询。
在bigquery(和/或遗留sql)的标准sql中,如何转义select/where语句的百分号?

33qvvth1

33qvvth11#

最简单的解决方法如下

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遗留sql-您应该使用 REGEXP_MATCH 而不是 REGEXP_CONTAINS

相关问题