sql文学习.....关于条件判断的查询....case-when-then

今天朋友一块聊到这个问题,一时没想起来,都怪自己平时没总结的习惯,

今天拿出以前的案例来分析一下,笔记一下:

问题:一张学生分数表,要求通过select语句实现要求的结果:

stu表:

id    name score
1     刘一    70
2     张三    40

要求:
经查询语句得结果:
id  name  score   mark
1     刘一    70     及格
2     张三    40     不及格

用到case-when-then就很容易搞定啦:

select id,name,score,(case when score>60  then '及格' else '不及格' end ) mark from stu;

-------------------------------------------------------------------------------------------

另外贴出一个关于批量更新语句的网址(感觉从中学到了不少):

转自:http://blog.oracle.com.cn/html/39/67239-7151.html

内容如下:

CASE WHEN 语句在UPDATE 中的使用

UPDATE rpt_edilog_nfme_check
   SET depart_desc =
          (CASE
              WHEN factory = 'ASSY' AND depart = '一期'
                 THEN '组装一部'
              WHEN factory = 'ASSY' AND depart = '二期'
                 THEN '组装二部'
              WHEN factory = 'TEST'
                 THEN '测试部'
              WHEN factory = 'FGS' AND depart = '一期' AND test_flag = 'AO'
                 THEN '组装一部'
              WHEN factory = 'FGS' AND depart = '二期' AND test_flag = 'AO'
                 THEN '组装二部'
              WHEN factory = 'FGS' AND test_flag = 'AT'
                 THEN '测试部'
           END
          )
 WHERE work_day = '2007072420'
今天到此---睡觉之。。。
posted @ 2012-04-27 01:39  horizon~~~  阅读(309)  评论(0编辑  收藏  举报