再说一下,在SQL SERVER中用的语句是case when then when then end ,在oracle中好像行不通,oracle中有相应的语句么?

解决方案 »

  1.   

    to 楼上的,decode好像只能判断一种条件,是跟不是,现在我要判断多种情况好像用decode搞不定。oracle的函数帮助各位高手都在哪里查的,各种工具都没函数帮助?
      

  2.   

    多种情况我可以判断了,decode(col,1,'1',2,'2'....'else').但给定的是范围时,如何处理?
    例如年龄大于30的我要输出 中午,大于60的我输出老年,怎么做?强烈请求各位教我如何查看函数的帮助?
      

  3.   

    我建议你可以将旷课表做一个视图,合计sum旷课人数group bi classid,然后再在视图中
    select 
    case sum
    when 1 then 'a' end as col1,
    when 2 then 'b' end as col2,
    when 3 then 'c' end as col3
    from tabel a, table b
    where a.classid = b.classid
      

  4.   

    select decode( sign(age-59),1,'老年',decode(sign(age-39),1,'中年','青年和小孩'))
      from table_A
      

  5.   

    decode中条件多了之后 会有很多嵌套,看的好累,有没有别的句话能完成
    if else if else if else if ...的功能
      

  6.   

    select class_id,decode(kuangke_time,2,'二级',1,'一级',0,'优秀','三级') from 
     (select class_id ,max(kuangke_time) kuangke_time from kuangke group by class_id)
      

  7.   

    select class_name,decode((select max(kuangke_time) from  kuangke where class_id=a.class_id),3,'三级',2,'二级',1,'一级') 等级 from class
      

  8.   

    我实际碰到的问题是,判断是条件是单个字符,楼上各位都是巧用max函数,对字符型的判断并不适用,还是得decode嵌套,两颗星的都用decode
    看来oracle没有函数能完全替代sql server 中的case when then end 了
    多谢楼上各位!!!!!!!