SQL中如何让百分比后面保留2位小数?

例:select str(convert(float,(@czcj/@ckrs)*100))+'%' as 机试合格率
输出显示:87%,但是想要后面保留两位小数如:87%.12。
谢谢解答!
87.12%
declare @ckrs float
declare @czcj float
declare @bscj float
declare @hgrs float
declare @qkrs float
select @ckrs=count(*) from 计算机考试成绩201112 where 院系名称='旅游系'
select @czcj=count(*) from 计算机考试成绩201112 where 院系名称='旅游系' and 操作成绩>='60'
select @bscj=count(*) from 计算机考试成绩201112 where 院系名称='旅游系' and 理论成绩>='60'
select @hgrs=count(*) from 计算机考试成绩201112 where 院系名称='旅游系' and (理论成绩>='60' and 操作成绩>='60')
select @qkrs=count(*) from 计算机考试成绩201112 where 院系名称='旅游系' and (理论成绩='0' and 操作成绩='0')
select str(convert(float,(@czcj/@ckrs)*100))+'%' as 机试合格率,str(convert(float,(@bscj/@ckrs)*100))+'%' as 笔试通过率,str(convert(float,(@hgrs/@ckrs)*100))+'%' as 通过率,str(convert(float,(@qkrs/@ckrs)*100))+'%' as 缺考率

第1个回答  推荐于2017-11-25
sqlserver:
select str((convert(float,(@czcj/@ckrs)*100)),5,2)+'%'
或者

select convert(varchar,convert(decimal(10,2),(@czcj/@ckrs)*100))+'%'本回答被提问者采纳
第2个回答  2012-09-05
我写了一个程序,不知道对你有没有帮助
declare @add decimal (4,4)
set @add=45/47
select @add
结果是 .0000,但是当我换成这样时:set @add=45.00/47时,结果就成了 .9574.然后再乘以百分数应该就可以有两位小数了。追问

请问decimal可以改为float麽,如果可以怎么改?
declare @ckrs float
declare @czcj float
declare @bscj float
declare @hgrs float
declare @qkrs float
select @ckrs=count(*) from 计算机考试成绩201112 where 院系名称='旅游系'
select @czcj=count(*) from 计算机考试成绩201112 where 院系名称='旅游系' and 操作成绩>='60'

本回答被网友采纳
第3个回答  2020-03-24

为什么小于1直接显示为0 了   结果大于一就正常

第4个回答  2012-09-05
貌似你这是MYSQL数据库啊
相似回答