select  dm ,  decode(dm,'01','一班','02','一班',……,'100','一班','101',二班', ……'200','二班)  from  bj 如何简化有些班的代码也可能出现连贯
如:01~010,12,13  '一班'
     11,200~300          '二班' 

解决方案 »

  1.   

    select dm,(case when dm=01 or dm=010 or .. then '一班' when dm >=100 or dm <=200 then '二班' else '不知' end) 
    from bj;
      

  2.   

    实在找不出对应关系,光看 select dm , decode(dm,'01','一班','02','一班',……,'100','一班','101',二班', ……'200','二班) from bj  ,貌似两位数的全是一班,三位数的 各位数相加可以被2整除的是2班,否则是一班;但是有些班的代码也可能出现连贯
    如:01~010,12,13  '一班'
      11,200~300 '二班'
      
    此规律就不行了,还是挺楼上的建议,整一张对应关系表吧,这样做就简单多了。
      

  3.   

    这种肯定不行,增加一个班级表create table tb_class(
    id varchar2(10) primary key,
    name varchar2(30) not null);