有一张表,里面有3个字段:语文,数学,英语。
其中有3条记录分别表示语文70分,数学80分,英语58分,
请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路):  
大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。  
       显示格式:  
       语文              数学                英语  
       及格              优秀                不及格  

解决方案 »

  1.   

    select  语文 = case when  语文> 80 then '优秀' when 语文 between 60 and 80 then '及格' when 语文<60 then '不及格' end,
     数学= case when   数学> 80 then '优秀' when  数学 between 60 and 80 then '及格' when  数学<60 then '不及格' end,
    英语 = case when  英语> 80 then '优秀' when 英语 between 60 and 80 then '及格' when 英语<60 then '不及格' end
    from ta
      

  2.   

    select  语文 = case when  语文 between 60 and 80 then '优秀' when 语文 <60 then '不及格' else '及格'  end,
    数学= 同上
    英语 =同上
    from ta
      

  3.   

    有一张表,里面有3个字段:语文,数学,英语。 
    其中有3条记录分别表示语文70分,数学80分,英语58分, 
    请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路):  
    大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。  
          显示格式:  
          语文              数学                英语  
          及格              优秀                不及格  
    --
    通过你的要求“大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格”,可以知道这里用case when 就能实现你的功能实现:
    select  语文 = case when  语文> 80 then '优秀' when 语文 between 60 and 80 then '及格' when 语文 <60 then '不及格' end, 
    数学= case when  数学> 80 then '优秀' when  数学 between 60 and 80 then '及格' when  数学 <60 then '不及格' end, 
    英语 = case when  英语> 80 then '优秀' when 英语 between 60 and 80 then '及格' when 英语 <60 then '不及格' end 
    from ta