今天來(lái)看一下SQL中的to_char的一些常見(jiàn)用法吧!
一著蟹、首先介紹一下to_char中的保留小數(shù)的用法吧:
表達(dá)式to_char(值墩蔓,'保留位數(shù)示范數(shù)字'),如to_char(2222.22222,'9999.99')
select to_char(222.222222,'999.99') as 值 from dual
查詢(xún)結(jié)果:
但是我們?cè)谑褂玫臅r(shí)候多多少少會(huì)出現(xiàn)一些問(wèn)題:
問(wèn)題一:'保留位數(shù)示范數(shù)字'不是使用‘9’
select to_char(222.222222,'222.22') as 值 from dual
這樣查詢(xún)會(huì)報(bào)錯(cuò):因?yàn)?不是字符格式的關(guān)鍵字萧豆,必須是9
問(wèn)題二:小數(shù)點(diǎn)位數(shù)前保留位數(shù)不足
select to_char(222.222222,'99.99') as 值 from dual
?上面的sql小數(shù)點(diǎn)前面有三位數(shù)奸披,但是你的小數(shù)前面的保留數(shù)值只有兩位值就會(huì)引發(fā)問(wèn)題,查詢(xún)出來(lái)的結(jié)果不是你想要的
查詢(xún)結(jié)果:
注意這并不是你裝的oracle涮雷,會(huì)查詢(xún)客戶(hù)端出現(xiàn)問(wèn)題阵面,也不是亂碼。
問(wèn)題三:to_char中的第二個(gè)參數(shù)的小數(shù)點(diǎn)后面位數(shù)高于第一個(gè)參數(shù)洪鸭,會(huì)用0補(bǔ)齊
select to_char(222.22,'999.999999') as 值 from dual
查詢(xún)結(jié)果:
問(wèn)題四:to_char中的第二個(gè)參數(shù)的小數(shù)點(diǎn)前面位數(shù)高于第一個(gè)參數(shù)样刷,會(huì)用空格補(bǔ)齊
正常:select to_char(222.22,'999.99') as 值 from dual
高于:select to_char(222.22,'99999999999999999999999.99') as 值 from dual
查詢(xún)結(jié)果如圖:
從圖中可以很明顯的看出來(lái)高于的查詢(xún)語(yǔ)句數(shù)值前面多出很多空格
二、介紹一下連接字符‘||’的使用
常見(jiàn):百分號(hào)览爵,單位符號(hào)颂斜,價(jià)錢(qián)等等的連接
1.百分號(hào)
select 22.22||'%' as 值 from dual
查詢(xún)結(jié)果:
2.價(jià)錢(qián)
select '¥'||22.22 as 值 from dual
查詢(xún)結(jié)果:
在大型的sql中最好少用‘||’,應(yīng)為會(huì)影響性能