oracle 函數to_char(數據,'FM999,999,999,999,990.00') 格式化數據(轉)
轉載自: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') 格式化數據(轉)