我有一个这样的表A,表中有字段id,id的数据是这些01,02,0210,0211,0212,03,0310,0311,0312,04,0410,0411我要从表中取出ID字段的数据为01,02,03,04....的所有数据,请问where条件应该如何写?
注意后期维护是还有可能存入05,06等数据,所以在写条件时不能写死,请高人指教,谢谢。    

解决方案 »

  1.   

    在程序里写的话就用where id in(01,02,03,04)这样的
    写法把01,02,03,04放在变量里或配置文件里去读,如过是.net
    呢.可以放在web.config里面作为一个键值来存储这样以后维护的
    时候直接可以在web.config里面加值而且还不用重新编译..
    如果纯粹在oracle里来做这些事情呢.就得用动态sql了
      

  2.   

    如果是0开头:
    where regexp_like(id,'0[[:digit:]]') 如果是两位数字:
    where regexp_like(id,'[[:digit:]][[:digit:]]') 前提是数据库是10G以上
      

  3.   

    select * from table where length(id)=2
      

  4.   

    where regexp_like(id,'0[[:digit:]]')[[:digit:]]正则表达式 表示一个数字(0-9)
      

  5.   

    按你说的,这个id应该是两位,但不一定是0开头。所以如果你的数据库是10g及以上的版本的话,用where regexp_like(id,'[[:digit:]][[:digit:]]')