Users 有个字段(name) 值是:"张三1233"。  使用一条sql语句 将name后面是数字的记录都查出来!? 数据库oracle

解决方案 »

  1.   

    select t.* from table a where t.name like '%0' or t.name like '%1' or t.name like '%2' or t.name like '%3' or t.name like '%4' or t.name like '%5' or t.name like '%6' or t.name like '%7' or t.name like '%8' or t.name like '%9'悲剧  我怎么写这么长,虽然管用
      

  2.   

    SQL> select REGEXP_replace(a, '[[:alpha:]]', '')
      2    from (select '张三1233' as a
      3            from dual
      4          union
      5          select '李四444456'
      6            from dual
      7          union
      8          select 'wangwu778' from dual);
     
    REGEXP_REPLACE(A,'[[:ALPHA:]]'
    --------------------------------------------------------------------------------
    778
    444456
    1233
     
    SQL>
      

  3.   

    select * from users t where substr(t.name,-1,1) between '0' and '9';
      

  4.   


    +1也可以用取子符串的regexp_substr正则函数来实现。
      

  5.   

    select * from Users t where length(regexp_substr(t.name, '[0-9]+')) > 0;