7.有一个表,三个字段语文、数学和英语,有三个记录为语文86,数学65,英语55
用一个sql语句查询并按照下列方式显示:
>=80优秀    >=60及格    <60不及格
语文      数学       英语
优秀      及格       不及格

解决方案 »

  1.   

    select '语文', '数学', '英语'
    from dual
    union
    select 
    CASE  
      WHEN t.yuwen >= 80 THEN '优秀'  
      WHEN t.yuwen between 60 and 79 THEN '及格' 
      WHEN t.yuwen < 60 THEN '不及格' 
      ELSE '非法数据',
    CASE  
      WHEN t.shuxue >= 80 THEN '优秀'  
      WHEN t.shuxue between 60 and 79 THEN '及格' 
      WHEN t.shuxue < 60 THEN '不及格' 
      ELSE '非法数据',
    CASE  
      WHEN t.yingyu >= 80 THEN '优秀'  
      WHEN t.yingyu between 60 and 79 THEN '及格' 
      WHEN t.yingyu < 60 THEN '不及格' 
      ELSE '非法数据'
    from xxxtable
      

  2.   


      select x.chines, x.math,x.english  from ( select    '优秀'  chines ,'及格' math,'不及格' english  from score where chinese>=80  and  math >=60 and  english <60)  x;
    题目本身都有点问题,如果我把这个SQL写出来了,估计他们会晕掉。
      

  3.   


    写的有点问题,改了一下select '语文', '数学', '英语'
    from dual
    union
    select 
    CASE  
      WHEN t.yuwen >= 80 THEN '优秀'  
      WHEN t.yuwen between 60 and 79 THEN '及格' 
      WHEN t.yuwen < 60 THEN '不及格' 
      ELSE '非法数据'
    end,
    CASE  
      WHEN t.shuxue >= 80 THEN '优秀'  
      WHEN t.shuxue between 60 and 79 THEN '及格' 
      WHEN t.shuxue < 60 THEN '不及格' 
      ELSE '非法数据'
    end,
    CASE  
      WHEN t.yingyu >= 80 THEN '优秀'  
      WHEN t.yingyu between 60 and 79 THEN '及格' 
      WHEN t.yingyu < 60 THEN '不及格' 
      ELSE '非法数据'
    end
    from xxxtable
      

  4.   

    表:
    语文  数学   英语
    86    65    55
    66    73    83
    ...
    条件:
    >=80优秀    >=60及格    <60不及格 
    要求结果:
    语文      数学      英语 
    优秀      及格      不及格
    ...
    SQL语句:
    create or replace function ff(p_res number)
    return varchar2
    is
       v_sal varchar(8);
    begin
       v_sal := case
                 when p_res>=80 then '优秀'
                 when p_res<60 then '不及格'
                 else '及格'
                end;
       return v_sal;
    end;select ff(yuwen) 语文,ff(shuxue) 数学,ff(yingyu) 英语 from xxx t;
    典型的中国式报表。
      

  5.   


    select (case when yuwen > 80 then '优秀' when yuwen > 60 then '及格' else '不及格' end) as '语文',
           (case when shuxue > 80 then '优秀' when shuxue > 60 then '及格' else '不及格' end) as '数学',
           (case when yingyu > 80 then '优秀' when yingyu > 60 then '及格' else '不及格' end) as '英语'
      from yourtable
      

  6.   

    没注意LZ的要求,把>改成>=
      

  7.   

    经严格测试,最基本的方法为:
    select (case   when  chinese>= 80 then '优秀' when chinese<60 then '不及格'else '及格' end) as '语文' ,
     (case   when  english>= 80 then '优秀' when english<60 then '不及格'else '及格' end) as '英语',
     (case   when  shuxue>= 80 then '优秀' when shuxue<60 then '不及格'else '及格' end) as '数学'from test绝对运行成功至于所有楼上的均未运行成功,报错。