阅 读 文 章

在db2中case怎么用?

[来源:网上转载 (http://www.chinaunix.net) | 作者:网友(zhp317) | 时间:2007-05-27 | 浏览:人次 ]


case



 xiedy 回复于:2002-11-23 16:05:15

select case when val1 between 1 and 5 then 1 when val1 between 6 and 9 then 2 else 3 end, val2 from table&#59;


 kingecg 回复于:2002-11-28 21:16:49

select case when 条件1 then do1 when 条件2 do2 else do3 end from ...


 neo2718 回复于:2002-11-28 22:03:13

CASE是从V2版本开始支持的
详见清华大学出版社的新版DB2-IBM的对象关系型数据库系统适用指南
1998年4月第一版 DON CHAMBERLIN著
写的还是不错的,有机会可以看看
举个书中的例子:
UPDATE properities
SET   taxrate=
   CASE 
       WHEN area<10000 THEN 0.05
       WHEN area<20000 THEN 0.07
       ELSE 0.09
   END




 neo2718 回复于:2002-11-28 22:43:21

上面说的不细,详细的说一下:
两种语法模式:
(1):CASE
        WHEN 条件  THEN 结果1
        ELSE            结果2
      END
(2):CASE 表达式1
        WHEN 表达式2   THEN 结果1
        ELSE            结果2
   END
上面的WHEN可以重复多次,就像C中的SWITCH ..CASE的表达
下面详细的各举几个例子,这些例子可以用于ESQL和交互式的SQL中
eg1:处理被0除
SELECT 
CASE 
WHEN fileld1=0 THEN 0
ELSE fileld2/field1
END
FROM  FILE

eg2:字段值对应转换
SELECT ORDNO,CUSNAM,SHIPDATE,CASE
                WHEN SHIPDATE<CURDATE()  THEN 'OVERDUE'
                WHEN SHIPDATE=CURDATE()  THEN 'PROCESSING'
                WHEN SHIPDATE>;CURDATE()  THEN 'ACTIVE'
              END
FROM FILE

eg3:获取月份的名字:上面的例子
SELECT ORDNO,CUSNO,
   CASE  MONTH(SHIPDATE)
   WHEN  '01'   THEN 'Jan'
   WHEN  '02'   THEN 'Feb'
   WHEN  '03'   THEN 'Mar'
论坛热门帖子: [lch203] 写得蛮好的linux学习笔记(10-21)
[黑马制造] 学习java的30个目标(10-19)
[笑傲股林] 做测试半年了,有点迷茫,应该再学些什么提高自己的测试水平和测试能力呢?(10-19)
[udp8589] 大家用google的来吱一声? 用百度的~~也来报道下?(10-18)
[沂偌掳兆] 本人总结的一些认为C++比较经典的书籍,希望对大家有用(10-18)
TAG标签: 怎么 THEN WHEN END CASE 回复 结果 例子 可以 条件 FROMFILE

最新评论 共有0位网友发表了评论

发表评论

评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名:(注册)
密码:
验证码:
匿名发表

网站地图友情连接交流论坛网站投稿广告服务联系我们留言本站长统计
Some rights reserved: www.chmhome.com, 鄂ICP备07010232号 E-mail:chinakafei@live.com,QQ:552766
中国咖啡技术网(Chmhome):国外编程技术书籍,中文编程手册,经典编程文章,交流技术,技术软件下载,计算机论文,毕业论文.