Databricks SQL端点中带范围运算符的LIKE语句无法正常工作
Databricks SQL中LIKE范围运算符失效的解决方法
问题本质:Databricks SQL的
LIKE语法仅支持%(匹配任意长度字符)和_(匹配单个字符)两种通配符,不支持SQL Server等系统里的[0-9]这类范围匹配语法,所以示例1的查询返回0条记录。替代方案:使用
RLIKE或REGEXP_LIKE函数,通过正则表达式实现范围匹配需求。
示例1修正后的查询语句:
with Cte_Members AS ( Select '1A' as Memid union all Select '2B' as Memid union all Select '3C' as Memid union all Select 'DD' as Memid ) select * from Cte_Members where Memid RLIKE '^[0-9].*'
结果:返回Memid为"1A"、"2B"、"3C"的3条记录
- 正则说明:
^[0-9].*里,^表示匹配字符串开头,[0-9]匹配单个0-9数字,.*匹配后续任意长度字符,和原需求的[0-9]%逻辑完全一致。
示例2的语句能正常工作,因为LIKE '2%'用的是Databricks SQL支持的%通配符,可正确匹配以"2"开头的记录。
内容的提问来源于stack exchange,提问作者Rajashekhar
相关产品推荐
相关产品推荐

