如何将返回数据格式化为2位小数,格式为100.00%或67.39%,而不是100.000000或67.391304?
SUM(qa.scripting1+qa.conduct1+qa.conduct2+qa.conduct3)*100.0/46 as 'C%'
我试过ROUND()
但是我收到错误声明圆函数需要2到3个参数?
ROUND(SUM(qa.scripting1+qa.conduct1+qa.conduct2+qa.conduct3)*100.0/46) as 'C%'
谢谢!
答案 0 :(得分:2)
您可以将原始值转换为小数:
CONVERT(VARCHAR(20), CONVERT(DECIMAL(18,2), SUM(qa.scripting1+qa.conduct1+qa.conduct2+qa.conduct3)*100.0/46) ) + '%' as 'C%'
十进制中的第一个数字表示数字中包含小数位数的位数,第二个数字表示小数位数。
答案 1 :(得分:0)
使用Round和Cast会有效。第一轮到2位小数,然后转换为带有2个位置的小数,以截断多余的零。
select cast(Round(yourValue, 2) as decimal(18,2))
答案 2 :(得分:0)
您应该将第二个参数中的小数位数传递给round函数。对于格式化,您可以将数字转换为金钱,然后转换为varchar:
select cast(cast(ROUND(SUM(123.12321)*100.0/46, 2) as money) as varchar) + '%'
答案 3 :(得分:0)
您可以使用格式化功能
select FORMAT(100.0000, 'N' , 'en-us')
返回100.00
和
select FORMAT(67.391304, 'N' , 'en-us')
返回67.39
修改强>
在2012年以下的版本中,你可以这样做
SELECT CAST(67.391304 AS NUMERIC(10, 2))
返回67.39