给个字段名name name中的值是字符串形式  要求是查询出name中的包含数字并且数字的长度为6的数据
例如:name  
      编号123456:dd
      dj123456sadas
      123456sjkadja
      23ja
查询之后是:
      name
      编号123456:dd
      dj123456sadas
      123456sjkadja
数据库是oracle

解决方案 »

  1.   

    with temp as (
    select '123456:dd' name from dual
    union all
    select 'dj123456sadas' name from dual
    union all
    select '123456sjkadja' name from dual
    union all
    select ' 23ja' name from dual
    union all
    select '12312374178923' name from dual
    union all
    select 'abaasdfasfsaf' from dual
    )
    select * from temp where regexp_like(name,'\d') and length(name)>6
      

  2.   

    必须要写函数吗?只用sql语句可以查出来吗?
      

  3.   

    正则表达式
     where regexp_like(name,'([^[:digit:]]|^)+[[:digit:]]{6}([^[:digit:]]+|$)')
      

  4.   

    select * from 表名 where regexp_like(name,'[[:digit:]]{6}')