数据库中的表有一列存的是号码,现在要求查出后三位相同的号码,例如1234666这种,请高人指教!

解决方案 »

  1.   


    select * from 表名 where mod(substr(id,length(id)-2,3),111)=0;
      

  2.   

    substr(id,length(id)-2,3)   这个就是取后三位的,前面有字符,只要后三位是纯数字就没问题
    后三位要考虑字符吗?
      

  3.   

    with t as
     (select 'ad2188882138888' str
        from dual
      union all
      select '11'
        from dual
      union all
      select '2333' from dual)
    select *
      from t
     where regexp_count(substr(str, -3), substr(str, -1)) = 3
       and regexp_count(substr(str, -4), substr(str, -1)) <> 4