1. 程式人生 > >oracle 函數to_char(數據,'FM999,999,999,999,990.00') 格式化數據(轉)

oracle 函數to_char(數據,'FM999,999,999,999,990.00') 格式化數據(轉)

取數 tps map 需要 顯示 空格 格式 小數 我們

轉載自:https://blog.csdn.net/fupengyao/article/details/52778565

遇到了oracle 取數格式問題,這裏記一下

我們通常在做數據算數後,會想要讓它顯示自己需要的格式,這裏介紹一種簡單的方式

to_char(數據,‘FM999,999,999,999,990.00‘)

例子:

select to_char(0.59/1.00*100,‘FM999,999,999,999,990.00‘)||‘%‘ from dual 

結果為:59.00%

下面是詳細介紹(copy的)

select to_char(0.596,FM999,999,999,990.00) from dual

  它的執行結果如下:

  怎樣使查出來類似0.60的小數帶0,答案是:使用如上的格式即

  ①其9代表:如果存在數字則顯示數字,不存在則顯示空格

  ②其0代表:如果存在數字則顯示數字,不存在則顯示0,即占位符。

  ③其FM代表:刪除如果是因9帶來的空格,則刪除之

  具體區別可以見

Selec length(to_char(1.00,999,999,999,999,999,999,999,990.00)), length(to_char(1.00,FM999,999,999,999,999,999,999,990.00)) from dual

  其結果是:

  ④四舍五入:0.596變成了0.60不知道大家註意到了沒有。如果不要四舍五入,則需要trunc下,具體如下:

  其結果是0.59

  ⑤解決列表100,000,000的情況

select to_char(10000000000,FM999,999,999,990.00) from dual

  上面的功能適用於固定小數點格式。而如果沒有小數點了?

  ⑥解決整數後面多個點的情況

select to_char(10000000000,FM999,999,999,990.99) from dual

  會出現類似的情況:10,000,000,000.

  此類的解決方案則需要進行先判斷詞數據是否包含.(點的情況)

  如果有點則 instr()下

  否則直接to_cahr()

  此功能適用於:頁面展示不出0(類的自定義的屬性,A類不存在屬性b,通過sqlMap查詢賦值的情況下適合,正常情況下不需要使用),前後臺列表展示不顯示0,前後臺列表的10,000,000,000格式。

oracle 函數to_char(數據,'FM999,999,999,999,990.00') 格式化數據(轉)