select decode(sign(dam-20),1,20,0) from tablename;

解决方案 »

  1.   

    select 
    case dam
    when dam>20 then "A"
    when dam=20 then "B"
    else "C"
    end 
    from table
    怎么处理?
      

  2.   

    case后多了个dam
    select 
    case
    when dam>20 then 20
    else 0
    end 
    from table
      

  3.   

    case 字段 只能比较字段相等
    select 
    case dam
    when 30 then 20
    --注意,主要是比较此处的值
    else 0
    end 
    from table
      

  4.   

    select decode(sign(dam-20),1,'A',0,'B','C') from tablename;
    可以
    但是我要比较的数不是一个的话
    select 
    case dam
    when dam>30 then "A"
    when dam>20 then "B"
    when dam>10 then "C"
    end 
    from table
    是不是如果dam位35 就返回A
    下面的判断就应该不起作用了吧
    要实现这样的判断该怎么处理?
      

  5.   

    select 
    case 
    when dam>30 then 'A'
    when dam>20 and dam <=30 then 'B'
    when dam>10 and dam <=20 then 'C'
    end 
    from table
      

  6.   

    duanzilin(寻) 
    我是说oracle下怎么写
      

  7.   

    oracle 8i不支持case when的写法,只能用decode,9i以上是支持的,上面写法在9i是没错的
      

  8.   

    8i下可以嵌套decode实现
    select decode(sign(dam-30),1,'A',decode(sign(dam-20),1,'B','C')) from tablename