请教用 LIKE 怎么模糊查询出全部是32开头的,而且是32后面第一个字是0,1,2,3,开头的的所有单品号;
相当于是,320,321,322,323所有单品号在SQL 里是可以这样写的 SELECT ITEMCODE FROM TMP WHERE LIKE '32[0123]%'在ORACLE 里就不知怎么写了?
ITEMCODE
3201247
3201244
3211111
3215477
3224477
3230231
3245888

解决方案 »

  1.   

    如果很多建议用正则表达式,REG_LIKE
    如果少就用 OR 连起来吧
    (字段 LIKE '320%' or 字段 LIKE '321%' or 字段 LIKE '322%' or ...)
      

  2.   


    with tab as(
    select '3201247' ite from dual
    union all
    select '3201244' ite from dual
    union all
    select '3211111' ite from dual
    union all
    select '3215477' ite from dual
    union all
    select '3224477' ite from dual
    union all
    select '3230231' ite from dual
    union all
    select '3245888' ite from dual
    )
    select *
    from tab t
    where regexp_like(t.ite,'32(0|1|2|3)*')
      

  3.   


    select *
    from tab t
    where regexp_like(t.ite,'^32(0|1|2|3)')
    这个可以,以32开头,第三位为0,1,2,3后面接任意字符。
      

  4.   

    我看了哈,有那么难吗?
    这样不行哇?
    select * from tableName where columName like '32%' and substr(columName,3,1) in ('0','1','2','3');
    这样32大头的全出来了?
      

  5.   

    select * from t where regexp_like(t.ITEMCODE,'32[0-3]+');