Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104594928
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-25 18:05:48

 
Oracle SQL到DB2 SQL的移植:
1、Oracel中的"decode"
DB2的解决方案:用"case"条件表达式来完成。

"case"两种语法的模式:

(1)CASE

WHEN 条件 THEN 结果1
ELSE 结果2
END
 

(2)CASE 表达式1

WHEN 表达式2 THEN 结果1
ELSE 结果2
END
 

上面的WHEN可以重复多次,就像C中的SWITCH ..CASE的表达.

例如:

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
应用实例:
Oracle SQL:
-------------------------
select decode(t.organtypecode, ''D'', t.parent, ''S'', t.parent, t.id)
from A_ORGAN t
where t.parent = 35
DB2 SQL:
-------------------------
select case x.organtypecode
when ''D'' then
x.parent
when ''S'' then
x.parent
else
x.id
end
from a_Organ x
where x.parent = 35;
 
 
来自: 新客网() 详文参考:
阅读(512) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~