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;
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 |
注册
个人空间
