SQL语句如下:select count(*)as 总数,
sum(case when sex=0 then 1 else 0 end) 男人数,
cast(100*(cast(1.0*sum(case when sex=0 then 1 else 0 end)/count(*) as decimal(18,4)))as varchar(20))+'%' 男占比例
from cj_yonghu
计算结果如下:总数 男人数 男占比例
157888 92984 58.8900%
问题如下:我想得到的结果是:总数 男人数 男占比例
157888 92984 58.89%
该如何做呢?
sum(case when sex=0 then 1 else 0 end) 男人数,
cast(100*(cast(1.0*sum(case when sex=0 then 1 else 0 end)/count(*) as decimal(18,4)))as varchar(20))+'%' 男占比例
from cj_yonghu
计算结果如下:总数 男人数 男占比例
157888 92984 58.8900%
问题如下:我想得到的结果是:总数 男人数 男占比例
157888 92984 58.89%
该如何做呢?
sum(case when sex=0 then 1 else 0 end) 男人数,
cast(100*(cast(1.0*sum(case when sex=0 then 1 else 0 end)/count(*) as decimal(18,2)))as varchar(20))+'%' 男占比例
from cj_yonghu
--例子
select substring(cast(round(1.0*2.221/5,4)*100 as varchar(10)),1,5)+'%'
sum(case when sex=0 then 1 else 0 end) 男人数,
cast(100*(cast(1.0*sum(case when sex=0 then 1 else 0 end)/count(*) as decimal(18,2)))as varchar(20))+'%' 男占比例
from cj_yonghu把decimal(18,2)设成 得到的结果是 59.00%而我要的结果是 58.89%
CONVERT(float,
CONVERT(decimal(18,4),CONVERT(decimal(18,4),92984)/CONVERT(decimal(18,4),157888))
)*100