2016-12-13 55 views
0

我正在構建本機存儲過程..其中一個字段是通過組合(連接)5個值派生的。這5個值中有3個是字符字段,2個是壓縮十進制數。在我寫入表格之前,我需要將它們合併到一個字段中。在存儲過程中將數字轉換爲壓縮十進制

我不知道如何將任何數字轉換爲SP中的壓縮十進制(COMP-3等效的COBOL)。

我試過DEC()函數,但它沒有給出預期的結果。

我使用的是DB2 V11

請讓我知道,如果有任何其他的方法..

謝謝..

+0

你說明您正在使用哪個數據庫管理系統? – McNets

+0

使用IBM DB2 V11 –

+0

請添加標籤或將其添加到您的問題。 – McNets

回答

0
with tmp as 
(
    select 
    case when 
    case when trim(ifnull(valchar1, ''))='' then '0' else trim(valchar1) end || 
    case when trim(ifnull(valchar2, ''))='' then '0' else trim(valchar2) end || 
    case when trim(ifnull(valchar3, ''))='' then '0' else trim(valchar3) end || 
    valdec1 || valdec2 as NewVal 
    from your table 
) 
select 
cast(case NewVal ='' then null else NewVal end as dec(15, 2)) as NewvvalDec 
from tmp 
相關問題