Snowflake SQL查询连续重复至少5次字符的记录无结果问题
解决Snowflake中正则匹配连续重复字符无结果的问题
问题原因
你的正则表达式在Snowflake中无法生效,核心问题有两个:
- 反斜杠未正确转义:Snowflake的SQL字符串里,反斜杠属于转义字符,要表示正则中的反向引用
\1,必须写成\\1。 - 列数据类型不匹配:如果目标列是数值类型(比如示例中的
1.111111111111E31),正则无法直接匹配数值,需要先转为字符串类型。
修正后的SQL语句
SELECT Column FROM Table WHERE TO_VARCHAR(Column) REGEXP '(.)\\1{4,}'
匹配说明
针对你提供的测试条目:
1.111111111111E31:转为字符串后,包含连续的多个1,符合匹配规则00000000000000000:若为字符串类型可直接匹配;若为数值类型,转为字符串后会变为单个0(无连续重复),但如果该值是以带前导零的字符串格式存储,就能正常匹配xxxxxxxxxxxxxxxxx:字符串类型下可直接匹配连续的x
内容的提问来源于stack exchange,提问作者KingTerror
相关产品推荐
相关产品推荐

