如何将T-SQL中COUNT除法结果转为两位小数后再转字符串?
解决T-SQL中除法结果转两位小数再转字符串的问题
你可以通过先对除法结果做四舍五入保留两位小数,再转换为字符串来实现需求,具体修改后的T-SQL语句如下:
SELECT CONVERT(VARCHAR(20), ROUND( (SELECT CONVERT(DECIMAL(10,2), COUNT(*)) FROM sometable WHERE conditions) / (SELECT CONVERT(DECIMAL(10,2), COUNT(*)) FROM someothertable WHERE conditions), 2)) AS Foobar
关键步骤说明:
ROUND(..., 2):将除法运算的结果四舍五入到两位小数,返回DECIMAL类型的两位小数数值CONVERT(VARCHAR(20), ...):把经过四舍五入后的两位小数数值转换为字符串类型
如果需要避免四舍五入,直接截断到两位小数,可以把ROUND换成CAST强制转换类型,比如:
SELECT CONVERT(VARCHAR(20), CAST( (SELECT CONVERT(DECIMAL(10,2), COUNT(*)) FROM sometable WHERE conditions) / (SELECT CONVERT(DECIMAL(10,2), COUNT(*)) FROM someothertable WHERE conditions) AS DECIMAL(10,2))) AS Foobar
这种方式会直接截断多余的小数位,而不是四舍五入,根据你的实际需求选择即可。
内容的提问来源于stack exchange,提问作者Simebaby
相关产品推荐
相关产品推荐

