oracle拼接小數百分號問題

2021-08-26 18:11:16 字數 589 閱讀 5819

在oracle的select計算中,經常會用到拼接百分號的問題,但是若結果為0.01的時候,小數點前的0就會經常被捨去。這是因為oracle在拼接%時,用到了隱式轉換,例如

select round(5164/88794,2) from dual

結果則為0.06,但是如果

select round(5164/88794,2)||』%』 from dual

則結果為.06%,如果需要把前面的0也顯示出來,則需要用到to_char,例如

select to_char(round(5164/88794,2),』fm999990.00』)||』%』 from dual

則結果則為0.06,但是這樣之後又會出現乙個問題,就是如果小數點前位數已經超過10位數的時候,就會發現,結果變成了#####,這時候又要用到fm這個引數,例如fm99900.00,在有9的地方,如果沒有數字,則不會顯示;有0的地方,如果沒有數字,則顯示為0.

這時如果結果為123.456,則會變成123.45,若為6.456,則為06.45.

特殊用法 百分號 井號

為了完整起見,我這裡再用一些例子加以說明 的一些特異功能 假設我們定義了乙個變數為 file dir1 dir2 dir3 my.file.txt 我們可以用 分別替換獲得不同的值 拿掉第一條 及其左邊的字串 dir1 dir2 dir3 my.file.txt 拿掉最後一條 及其左邊的字串 my....

Shell中變數的單百分號 和雙百分號 的作用

使用百分號將變數的內容從變數的後面刪除,並從變數的尾部刪除。不同的是,乙個 號表示從尾部最近的匹配刪除,兩個 從尾部最遠的匹配刪除。同時支援使用萬用字元。比如 先宣告乙個變數 filename aaabbccddaabbccdd使用乙個百分號擷取尾部bb echo 結果 aaabbccddaa可以看...

MySQL求百分比帶百分號

round concat 推薦 concat round a.price b.price b.price 100,2 concat round a.price b.price b.price 100,3 a.price b.price b.price 0.234467 23.45 a.price b...