A表id  name  fen  1   java  60
2   C#    70
3   php    50 
结果这样的 
id  name  fen  pass1   java  60    通过
2   C#    70    通过
3   php    50   未通过

解决方案 »

  1.   

    select id,name,fen,decode(sign(fen-60),1,'通过',0,'通过',-1,'未通过') pass
    from a;
      

  2.   


    alter table a add pass nvarchar2(20);update a
    set    pass=case when fen>=60 then '通过'
                     else '未通过'
                end 
      

  3.   

    select id,name,fen,decode(sign(fen-60),-1,'未通过','通过') as pass from A;
      

  4.   


    SQL> 
    SQL> with A as(
      2  select 1 id, 'java' name,  60 fen from dual union all
      3  select 2 id,  'C#' name,   70 fen from dual union all
      4  select 3 id,  'php' name,    50 fen from dual
      5  )
      6  select id,name,fen,case when fen>=60 then '通过' else '未通过' end pass from A
      7  /        ID NAME        FEN PASS
    ---------- ---- ---------- ---------
             1 java         60 通过
             2 C#           70 通过
             3 php          50 未通过SQL> 
      

  5.   

    二楼那个应该对!就是利用decode与sign函数
      

  6.   


    如果你需要PASS这样的一个列,那就先修改表结构,如果只需要结果
    那么可以直接select 出一个伪列即可
      

  7.   

    select id,name,fen,decode(sign(fen-60),1,'通过',0,'通过',-1,'未通过') pass 
    from a;Right!
      

  8.   

    总结一下:1、使用deocde加上sign
    关键是理解sign函数
    sign(x)
    x>0 返回1
    x=0 返回0
    x<0 返回-12、使用case函数,这个应该好理解一些。
      

  9.   

    select id,name,fen,decode(sign(fen-60),-1,'未通过','通过') pass from a;
      

  10.   

    select id,name,fen,decode(sign(fen-60),1,'通过',0,'通过',-1,'未通过') pass
    from A