程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 對Oracle SQL到DB2 SQL移植的淺析

對Oracle SQL到DB2 SQL移植的淺析

編輯:Oracle數據庫基礎

以下的文章主要是對Oracle SQL到DB2 SQL移植解決方案淺析,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的表達.

例如:

  1. SELECT ORDNO,CUSNO,  
  2. CASE MONTH(SHIPDATE)  
  3. WHEN ´´01´´ THEN ´´Jan´´  
  4. WHEN ´´02´´ THEN ´´Feb´´  
  5. WHEN ´´03´´ THEN ´´Mar´´  
  6. WHEN ´´04´´ THEN ´´Apr´´  
  7. WHEN ´´05´´ THEN ´´May´´  
  8. WHEN ´´06´´ THEN ´´Jun´´  
  9. WHEN ´´07´´ THEN ´´Jul´´  
  10. WHEN ´´08´´ THEN ´´Aug´´  
  11. WHEN ´´09´´ THEN ´´Sep´´  
  12. WHEN ´´10´´ THEN ´´Oct´´  
  13. WHEN ´´11´´ THEN ´´Nov´´  
  14. WHEN ´´12´´ THEN ´´Dec´´  
  15. END  
  16. FROM FILE  

應用實例:

Oracle SQL:

  1. select decode(t.organtypecode, 
    ´´D´´, t.parent, ´´S´´, t.parent, t.id)  
  2. from A_ORGAN t  
  3. where t.parent = 35 
  4. DB2 SQL:  
  5. select case x.organtypecode  
  6. when ´´D´´ then  
  7. x.parent  
  8. when ´´S´´ then  
  9. x.parent  
  10. else  
  11. x.id  
  12. end  
  13. from a_Organ x  
  14. where x.parent = 35;  

2、Oracle中的Start with...Connect By遞歸查詢

DB2解決方案:用with公共遞歸表達式來解決。

DB2解決方案:用case條件表達式完成。

Oracle SQL:

  1. select t.id  
  2. from a_organ t  
  3. start with t.id in (select decode(t.organtypecode,  
  4. ´´D´´,  
  5. t.parent,  
  6. ´´S´´,  
  7. t.parent,  
  8. t.id)  
  9. from A_ORGAN  
  10. where t.id = 35)  
  11. connect by t.parent = prior t.id  
  12. DB2 SQL:  
  13. WITH FKK(id) as  
  14. (select o.id from a_organ o  
  15. where o.id=35 
  16. UNION ALL  
  17. select case x.organtypecode  
  18. when ´´D´´ then x.parent  
  19. when ´´S´´ then x.parent  
  20. else x.id  
  21. end  
  22. from FKK fk, a_organ x  
  23. where fk.id=x.parent)  
  24. select distinct id from FKK;  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved