编写Oracle SQL查询找出含特殊字符的电话号码
查找含特殊字符的电话号码(Oracle SQL)
要筛选出包含非数字特殊字符的电话号码,你可以用Oracle的正则表达式函数REGEXP_LIKE实现,以下是两种实用写法:
写法一:筛选非纯数字的记录
SELECT phone_number FROM your_table_name WHERE NOT REGEXP_LIKE(phone_number, '^[0-9]+$');
逻辑:^[0-9]+$匹配从开头到结尾全是数字的字符串,加上NOT就会筛选出不符合该规则的记录,也就是含特殊字符的异常号码。
写法二:直接匹配含非数字的记录
SELECT phone_number FROM your_table_name WHERE REGEXP_LIKE(phone_number, '[^0-9]');
逻辑:[^0-9]表示匹配任何不是0-9的字符,只要电话号码里存在这类字符,就会被筛选出来。
补充说明
如果你的表中存在空值的电话号码,可添加条件排除空记录:
-- 以写法二为例 SELECT phone_number FROM your_table_name WHERE phone_number IS NOT NULL AND REGEXP_LIKE(phone_number, '[^0-9]');
内容的提问来源于stack exchange,提问作者ehsan hosseini
相关产品推荐
相关产品推荐

