?? 在db2中case怎么用.txt
字號:
>> ChinaUnix.net > DB2
在db2中case怎么用?
作者:zhp317 發表時間:2002/11/22 03:40pm
case
--------------------------------------------------------------------------------
此文章相關評論:
該文章有5個相關評論如下:(點這兒可以發表評論)
xiedy 發表于: 2002/11/23 04:05pm
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 09:16pm
select case when 條件1 then do1 when 條件2 do2 else do3 end from ...
neo2718 發表于: 2002/11/28 10:03pm
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 10:43pm
上面說的不細,詳細的說一下:
兩種語法模式:
(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'
WHEN '04' THEN 'Apr'
WHEN '05' THEN 'May'
WHEN '06' THEN 'Jun'
WHEN '07' THEN 'Jul'
WHEN '08' THEN 'Aug'
WHEN '09' THEN 'Sep'
WHEN '10' THEN 'Oct'
WHEN '11' THEN 'Nov'
WHEN '12' THEN 'Dec'
END
FROM FILE
matey 發表于: 2002/11/29 05:42pm
CASE這東東很好用的,不僅SELECT可以用,UPATE里面也好靈的
--------------------------------------------------------------------------------
Copyright ? ChinaUnix.net * 轉載請注明出處及作者
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -