3 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以使用該FORMAT()功能(SqlAzure和Sql Server 2012+):
SELECT FORMAT(CAST(15.12 AS DECIMAL(9,6)), 'g18') -- '15.12'
SELECT FORMAT(CAST(0.0001575 AS DECIMAL(9,6)), 'g10') -- '0.000158'
SELECT FORMAT(CAST(2.0 AS DECIMAL(9,6)), 'g15') -- '2'
使用FLOAT(或REAL)時(shí)要小心:不要使用g17或更大(或者g8使用REAL更大),因?yàn)闄C(jī)器表示的精度有限會(huì)導(dǎo)致不必要的影響:
SELECT FORMAT(CAST(15.12 AS FLOAT), 'g17') -- '15.119999999999999'
SELECT FORMAT(CAST(0.9 AS REAL), 'g8') -- '0.89999998'
SELECT FORMAT(CAST(0.9 AS REAL), 'g7') -- '0.9'
此外,請(qǐng)注意,根據(jù)文件:
FORMAT依賴于.NET Framework公共語(yǔ)言運(yùn)行時(shí)(CLR)的存在。此功能不會(huì)被遠(yuǎn)程控制,因?yàn)樗Q于CLR的存在。遠(yuǎn)程處理需要CLR的函數(shù)會(huì)導(dǎo)致遠(yuǎn)程服務(wù)器出錯(cuò)。
也適用于SqlAzure。
添加回答
舉報(bào)