select decode((select * from 
(select 5 as a from dual) where a not between 1 and 6),null,0,decode((select * from 
(select 5 as a from dual) where a not between 1 and 7),null,0,decode((select * from 
(select 5 as a from dual) where a not between 1 and 8),null,0,decode((select * from 
(select 5 as a from dual) where a not between 1 and 9),null,0,1))))
from dual

解决方案 »

  1.   

    9i的话:
    case
                when count(b.XSID)<=25 then 'DOWN25'
                when count(b.XSID) >25 count(b.XSID) <= 35 then '26-35' 
    ...
                else 'UP66' 
           end
      

  2.   

    select decode((select * from 
    (select department_id as a from tz_department) where a not between 1 and 25),null,'DOWN25',decode((select * from 
    (select department_id as a from tz_department) where a not between 26 and 36),null,'DOWN26',decode((select * from 
    (select department_id as a from tz_department) where a not between 55 and 77),null,'DOWN27',decode((select * from 
    (select department_id as a from tz_departmentb) where a not between 188 and 99),null,'DOWN28','aaaa'))))
    from tz_department
      

  3.   

    decode(sign(count(b.XSID)-25),-1,'DOWN25',0,'DOWN25',decode(sign(count(b.XSID)-26)*sign(35-count(b.XSID)),1,'26-35',decode(sign(count(b.XSID)-36)*sign(45-count(b.XSID)),1,'36-45',decode(sign(count(b.XSID)-46)*sign(55-count(b.XSID)),1,'46-55',decode(sign(count(b.XSID)-56)*sign(65-count(b.XSID)),1,'56-65')))))注意括号要对应
      

  4.   

    各位兄弟,这是完整的sql语句:
    select a.XBM,b.NJID,AgeRange=
      case 
        when year(getdate())-cast(substring(a.CSRQ,1,4) as int)<= 10 then 'Down10'
        when year(getdate())-cast(substring(a.CSRQ,1,4) as int)= 11 then '11'   
        when year(getdate())-cast(substring(a.CSRQ,1,4) as int)= 12 then '12'  
        when year(getdate())-cast(substring(a.CSRQ,1,4) as int)= 13 then '13' 
        when year(getdate())-cast(substring(a.CSRQ,1,4) as int)= 14 then '14'  
        when year(getdate())-cast(substring(a.CSRQ,1,4) as int)= 15 then '15'
        when year(getdate())-cast(substring(a.CSRQ,1,4) as int)= 16 then '16'  
        when year(getdate())-cast(substring(a.CSRQ,1,4) as int)= 17 then '17'   
        else 'Up18'
      end 
    from EBD_STUDENT_JBXX a,EBD_SCHOOL_BJXX b
      where a.BJBH=b.BJBH and a.XXDM=b.XXDM and a.XXDM=@XXDM
        and a.DQZTM ='0'
        and a.CSRQ is not null
        and b.NJID in ('21','22','23','24')