[oracle]参数化的解码功能

标签: Oracle
发布时间: 2017/4/14 23:56:28
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

在 oracle 中我使用解码的语句如下所示。为安全原因我不想对代码有硬编码值,我打算创建一个新的查找表。

  Select CONCAT( Decode(A.COUNTRY_INITIAL,
                        'A','America',
                        'B','Brazil',
                        'F','FINLAND',
                        NULL),
                 Decode(A.ADD_VALUE,
                        'M','YES',
                        NULL))
  from  (
      Select SUBSTR(COUNTRY_BASE, -1,1) as COUNTRY_INITIAL,
             SUBSTR(IS_VALUED, -1,1) as ADD_VALUE
      from TBL1
  )A

Refernece Table
*******************
Clmn1   Clmn2   Clmn3
--------------------------
cntry1  A       America
cntry2  B       Brazil
cntry3  F       Finland
Value1  M       YES

你可以请让我知道这在解码逻辑如何将。此外 fyi im 在 Oracle 函数中使用此代码片段。

解决方法 1:

如果表中有这些细节你只可以使用联接来获得所需的输出。

select t1.COUNTRY_BASE,ref.Clmn3,ref1.Clmn3
frorm TBL1 t1
left outer join reftable ref
on SUBSTR(t1.COUNTRY_BASE, -1,1)=ref.Clmn2  
left outer join reftable ref1
on SUBSTR(t1.IS_VALUED, -1,1)=ref.Clmn2;
官方微信
官方QQ群
31647020