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。
添加回答
举报