3 回答

TA貢獻1853條經驗 獲得超6個贊
您可以使用該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)時要小心:不要使用g17或更大(或者g8使用REAL更大),因為機器表示的精度有限會導致不必要的影響:
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'
此外,請注意,根據文件:
FORMAT依賴于.NET Framework公共語言運行時(CLR)的存在。此功能不會被遠程控制,因為它取決于CLR的存在。遠程處理需要CLR的函數會導致遠程服務器出錯。
也適用于SqlAzure。
添加回答
舉報