oracle移植到db2,对Oracle SQL到DB2 SQL移植的浅析

以下的文章主要是对Oracle SQL到DB2 SQL移植解决方案浅析,OracleSQL到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

wheret.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

wherex.parent=35;

2、Oracle中的Start with...Connect By递归查询

DB2解决方案:用with公共递归表达式来解决。

DB2解决方案:用case条件表达式完成。

Oracle SQL:

select t.id

from a_organ t

start with t.id in (select decode(t.organtypecode,

´´D´´,

t.parent,

´´S´´,

t.parent,

t.id)

from A_ORGAN

wheret.id=35)

connect byt.parent=priort.id

DB2 SQL:

WITH FKK(id) as

(select o.id from a_organ o

whereo.id=35

UNION ALL

select case x.organtypecode

when ´´D´´ then x.parent

when ´´S´´ then x.parent

else x.id

end

from FKK fk, a_organ x

wherefk.id=x.parent)

select distinct id from FKK;

上述的相关内容就是对Oracle SQL到DB2 SQL移植解决方案的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

【责任编辑:孙巧华 TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值