oracle case when then else end用法
阿新 • • 發佈:2019-01-25
語法:
CASE search_expression
當表達1那麼結果1
當表達2那麼結果2
比如客戶型別個人0,機構1,產品2對應的證件型別分別對應1018,1019,1355字典項。
下面舉例說明具體實現:如何把某客戶型別對應的證件型別翻譯成中文。
SELECT T.VC_CUSTOMNAME, T1.VC_FUNDACCO, T2.VC_TRADEACCO, D2.C_CAPTION, T.C_CUSTTYPE, T.C_IDENTITYTYPE, F.C_CAPTION, T.VC_IDENTITYNO, D1.C_CAPTION, T3.VC_BANKACCO, T3.VC_BANKNAME, T3.VC_NAMEINBANK, T2.VC_ADDRESS, T2.VC_MOBILENO, T2.VC_ZIP FROM TCUSTINFO T LEFT JOIN TFUNDACCO T1 ON T.VC_CUSTNO = T1.VC_CUSTNO LEFT JOIN TACCOINFO T2 ON T1.VC_CUSTNO = T2.VC_CUSTNO LEFT JOIN TACCOBANK T3 ON T2.VC_TRADEACCO = T3.VC_TRADEACCO LEFT JOIN (SELECT * FROM TDICTIONARY TD WHERE TD.L_KEYNO = '1014') D1 ON T3.C_BANKNO = D1.C_KEYVALUE LEFT JOIN (SELECT * FROM TDICTIONARY TD WHERE TD.L_KEYNO = '1001') D2 ON T.C_CUSTTYPE = D2.C_KEYVALUE LEFT JOIN (SELECT (CASE T.L_KEYNO WHEN 1018 THEN 1 WHEN 1019 THEN 0 ELSE 2 END) L_KEYNO, T.C_KEYVALUE, T.C_CAPTION, T.C_MODIFY, T.C_MEMO, T.VC_TRANSLATION, T.L_ORDER FROM TDICTIONARY T WHERE T.L_KEYNO IN ('1018', '1019', '1355')) F ON T.C_CUSTTYPE = F.L_KEYNO AND T.C_IDENTITYTYPE = F.C_KEYVALUE;