我要执行一个语句,查询编号中以('01','0103','03','040302' 这些数据不固定,由用户选择)开头的数据,应该怎样实现,

解决方案 »

  1.   

    in list必须是确定值,不能包含通配符。
    like可以包含通配符,但表达式只能有一个,若有多个,则须有多个like。where col in ('确定值','确定值','确定值',…) and|or col lile '包含通配符的值'这样写没有问题。但是如果是in … and like …,需全部满足。
    如果是in … or like …,完全没有问题,结果既包含符合in list的,也包含like里符合条件的数据。
      

  2.   

    直接一组 select * from tbl where ** like '01%' or ** like .....
      

  3.   

    10g以上的版本可以用正则表达式
    regexp_like(COLNAME,'^(01|0103|03|040302)')