最近在項目中,遇到了算百分數的問題:
1.在網上百度了一下,找到了一個初級版本
select round(1 / 22, 4) * 100 || '%'
from dual;
然后發現不能,當小數點前面為0時,不顯示對應整數位的0
2.找到了進階版本2
select to_char(round(1 / 17778, 4) * 100,'fm9999990.9999') || '%' from dual; 小數點后能正常顯示。
但又發現,當沒有小數位時,會帶有一個小數點,下面的就是
select to_char(round(1 / 2, 4) * 100,'fm9999990.9999') || '%' from dual;
3.進階版本3
通過CONCAT函數連接“%”
Select CONCAT(TO_CHAR(round(1 / 2, 4) * 100,'990.99'),'%') FROM DUAL;
但是發現小數前面會有空格
4.終結版本
Select LTRIM(CONCAT(TO_CHAR(round(1 / 2, 4) * 100,'990.99'),'%'),' ') FROM DUAL;