日期:2014-05-17  浏览次数:21192 次

case中可以用大于小于不?一个小例子
select * from t3

  YW SX YY
---- ---------- ----------
  34 68 97
  66 85 97
  77 85 97

想要下面的效果:
  语文 数学 英语
---- ---------- ----------
  不及格 及格 优秀
  及格 优秀 优秀
  良好 优秀 优秀
用case来实现怎么做?
只要能出结果就好。
谢谢了。初学。

------解决方案--------------------

SQL code

select case when yw<60 then '不及格' elsif yw<70 then '良好' elsif '优秀' end ,
 case when sx<60 then '不及格' elsif sx<70 then '良好' elsif '优秀' end ,
 case when yy<60 then '不及格' elsif yy<70 then '良好' elsif '优秀' end 
from t3;

------解决方案--------------------
SQL code

这么写:

SELECT CASE
         WHEN yw < 60 THEN
          '不及格'
         WHEN yw >= 60 AND yw < 70 THEN
          '良好'
         ELSE
          '优秀'
       END,
       CASE
         WHEN sx < 60 THEN
          '不及格'
         WHEN sx >= 60 AND sx < 70 THEN
          '良好'
         ELSE
          '优秀'
       END,
       CASE
         WHEN yy < 60 THEN
          '不及格'
         WHEN yy >= 60 AND yy < 70 THEN
          '良好'
         ELSE
          '优秀'
       END
  FROM t3;