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