You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ORACLE SQL如何检测电话号码中连续4次重复数字并置空

Oracle SQL 电话号码连续重复数字校验实现

核心逻辑说明

利用Oracle内置的正则匹配函数REGEXP_LIKE识别连续4次出现的相同数字,匹配规则为正则表达式([0-9])\1{3}:

  • [0-9] 匹配任意单个数字
  • () 将匹配到的单个数字标记为捕获组
  • \1 引用第一个捕获组匹配到的数字
  • {3} 表示引用的数字连续重复出现3次,和捕获组的1次相加正好是连续4次相同数字

场景1:查询时直接转换输出结果

如果不需要修改原表数据,仅查询时输出校验后的值,使用CASE判断即可:

SELECT
  CASE
    WHEN REGEXP_LIKE(tel, '([0-9])\1{3}') THEN NULL
    ELSE tel
  END AS checked_tel
FROM 你的表名;

场景2:更新原表将不符合规则的号码置为NULL

如果需要直接修改原表数据,执行UPDATE语句:

UPDATE 你的表名
SET tel = NULL
WHERE REGEXP_LIKE(tel, '([0-9])\1{3}');

效果验证

对应你给出的示例数据,执行后结果如下:

原号码校验后结果匹配说明
012345678012345678OK
021444458NULL存在4个连续4
339547214339547214OK
111105874NULL存在4个连续1

内容的提问来源于stack exchange,提问作者Zed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 13:36:08