保留兩位有效數字:
to_char(t.AMOUT, 'FM9999999999999999999999990.00')
to_char,函數功能,就是將數值型或者日期型轉化為字符型。
比如最簡(jiǎn)單的應用:
/*1.0123--->'1.0123'*/
Select TO_CHAR(1.0123) FROM DUAL
/*123--->'123'*/
Select TO_CHAR(123) FROM DUAL接下來(lái)再看看下面:
/*0.123 ---> '.123' */
SELEC TO_CHAR(0.123) FROM DUAL上面的結果 '.123' 在大多數情況下都不是我們想要的結果,我們想要的應該是 '0.123'。
我們來(lái)看一下to_char函數的具體用法:
TO_CHAR ( n [, fmt [, 'nlsparam']] )
該函數將NUMBER類(lèi)型的n按數值格式fmt轉換成VARCHAR2類(lèi)型的值。'nlsparams'指定由數值格式的元素返回的字符,包括:
.小數點(diǎn)字符
.組分隔符
.本地錢(qián)幣符號
.國際錢(qián)幣符號
變元的形式為:
'NLS_NUMERIC_CHARACTERS="dg" NLS_CURRENCY="tcxt" NLS_ISO_CURRENCY=territory'
其中d為小數點(diǎn)字符,g為組分隔符。
例 :TO_CHAR (17145,'L099G999','NLS_NUMERIC_CHARACTERS=".," NLS_CURRENCY="NUD"')=NUD017,145通過(guò)上面的了解,再查看fmt的一些格式,我們可以用以下表達式得到'0.123'的值:
/*0.123 ---> ' 0.123' */
Select TO_CHAR(0.123,'0.999') FROM DUAL
/*100.12 ---> '######' */
Select TO_CHAR(100.12,'0.999') FROM DUAL
/*1.12 ---> ' 1.120' */
Select TO_CHAR(1.12,'0.999') FROM DUAL' 0.123'是出來(lái)了,可是前面又多了一個(gè)空格。
對于 100.12 的值卻是######,以及'1.12'的值變成了 '1.120'。
我們重新確定一個(gè)新的需求:
1、去空格
2、小數點(diǎn)最多4位,最少保留2位。
1--->'1.00';1.1--->'1.00';1.12-->'1.12';1.1234--->'1.1234';
1.12345--->'1.1235'
最終實(shí)現如下:
/*
FM :除空格
9999999.0099:允許小數點(diǎn)左邊最大正數為7位,小數點(diǎn)右邊最少2位,最多4位,且在第5位進(jìn)行四舍五入
*/
Select TO_CHAR(123.0233,'FM9999999.0099') FROM DUAL
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。