2016-12-27 83 views
0

我有我敢肯定有問題PLSQL格式編號不唯一顯示wtihout小數限制

我有了像下面

Col 
.42 
1.2 
5 
2.222212 

現在我追加這個值的數據庫列列發送到前端應用程序,並需要格式化它。但我不應該放棄任何十進制值。

所以,我想發送到前端應用程序會像

0.42 
1.2 
5.0 
2.222212 

基本上,我不想失去任何小數點位置。但是不應該添加大於1的尾隨零。同樣,在以'。'開頭的十進制值之前應該附加0。 (例如:.42)但不應超過1個前導0。

現在打破我的頭。任何幫助將受到真誠的讚賞。

謝謝

回答

2

也許像這樣?這些鍵是0標記(如果沒有數字存在,則置0),並且FM(除了所要求的內容 - 即單位數字,小數點和十分之一數字,使得輸出儘可能窄)。

這假定輸入是NUMBER數據類型,並且所需的輸出是字符串(VARCHAR2)。如果輸入也是字符串,則將它們包裝在to_number()內。

with 
    test_data (col) as (
     select .42  from dual union all 
     select 1.2  from dual union all 
     select 5  from dual union all 
     select 2.222212 from dual 
    ) 
-- end of test data; the SQL query is the one line below 
select col, to_char(col, 'FM99999990.0999999999') as str from test_data; 

    COL STR 
-------- -------- 
    0.42 0.42 
    1.2 1.2 
     5 5.0 
2.222212 2.222212 
+0

它像一個美麗的工作。感謝您的解釋。這使得解決方案更加完善。 –

+0

非常感謝! –