Oracle to_char函數(shù)的使用
Oracle to_char函數(shù)的功能是將數(shù)值型或者日期型轉(zhuǎn)化為字符型,下面就為您詳細(xì)介紹Oracle to_char函數(shù)的使用,希望對(duì)您能有所幫助。
Oracle to_char函數(shù)最簡(jiǎn)單的應(yīng)用:
/*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
上面的結(jié)果 '.123' 在大多數(shù)情況下都不是我們想要的結(jié)果,我們想要的應(yīng)該是 '0.123'。
我們來(lái)看一下to_char函數(shù)的具體用法:
TO_CHAR ( n [, fmt [, 'nlsparam']] )
Oracle to_char函數(shù)將NUMBER類型的n按數(shù)值格式fmt轉(zhuǎn)換成VARCHAR2類型的值。'nlsparams'指定由數(shù)值格式的元素返回的字符,包括:
.小數(shù)點(diǎn)字符
.組分隔符
.本地錢幣符號(hào)
.國(guó)際錢幣符號(hào)
變?cè)男问綖椋?/p>
'NLS_NUMERIC_CHARACTERS="dg" NLS_CURRENCY="tcxt" NLS_ISO_CURRENCY=territory'
其中d為小數(shù)點(diǎn)字符,g為組分隔符。
例 :TO_CHAR (17145,'L099G999','NLS_NUMERIC_CHARACTERS=".," NLS_CURRENCY="NUD"')=NUD017,145
通過(guò)上面的了解,再查看fmt的一些格式,我們可以用以下表達(dá)式得到'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è)空格。
對(duì)于 100.12 的值卻是######,以及'1.12'的值變成了 '1.120'。
我們重新確定一個(gè)新的需求:
1、去空格
2、小數(shù)點(diǎn)最多4位,最少保留2位。
1--->'1.00';1.1--->'1.00';1.12-->'1.12';1.1234--->'1.1234';
1.12345--->'1.1235'
最終實(shí)現(xiàn)如下:
/*
FM :除空格
9999999.0099:允許小數(shù)點(diǎn)左邊***正數(shù)為7位,小數(shù)點(diǎn)右邊最少2位,最多4位,且在第5位進(jìn)行四舍五入
*/
Select TO_CHAR(123.0233,'FM9999999.0099') FROM DUAL
【編輯推薦】
oracle函數(shù)返回表的實(shí)現(xiàn)