SQL语句小数变成百分数

selectconvert(numeric(8,2),(selectconvert(Numeric(8,2),(selectCOUNT(*)from表where列1=12... select convert(numeric(8,2) ,
(select convert(Numeric(8,2),( select COUNT(*) from 表 where 列1=1229)) /
(select count(列1) from 表)))
我得出的数是小数 怎么能让小数变成百分数
展开
 我来答
四舍五不入6
高粉答主

2019-12-02 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2.2万
展开全部

代码:

select cast(cast(0.1234*100 as numeric(10,2)) as  varchar(50))+'%'

问题分析:

1、小数肯定是数字类型

2、百分数肯定是字符类型,另外百分比一般只有两位小数

解决办法:

1、需要先将小数变成百分比,也就是将小数*100,将结果小数位保留为两位

2、再将小数*100转为字符类型后在附加%符号

示例:将小数【0.1234】转为百分比【12.34%】

扩展资料:

注意事项

一、concat函数

该函数用于字串的拼接,比如我们想把10变成10%,就可以写成:

select concat(10,'%');

二、FLOOR(X)

将小数的小数部分去除,只留下整数部分,并且不进行四舍五入。

select FLOOR(5.5);

运行结果为:5

ROUND(X,D)函数和TRANCATE(X,D)函数

两个函数都可以用来对小数保留指定小数位数,其中第二个参数D用来指定要保留到第几位。差别是前者会进行四舍五入,而后者不会。

大野瘦子
高粉答主

2019-10-12 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:33.8万
展开全部

select convert(numeric(8,2) ,

cast( (select convert(Numeric(8,2),( select COUNT(*) from 表 where 列1=1229)) /

(select count(列1) from 表))) * 100 as varchar(10) ) + '%'

注:*100 as varchar(10))+'%'     (10) 变成长度是10的字符串,然后再加上%号,如果不用加%,就不用cast,直接 * 100 就可以了。

扩展资料:

注意事项

一、concat函数

该函数用于字串的拼接,比如我们想把10变成10%,就可以写成:

select concat(10,'%');

二、FLOOR(X)

将小数的小数部分去除,只留下整数部分,并且不进行四舍五入。

select FLOOR(5.5);

运行结果为:5

ROUND(X,D)函数和TRANCATE(X,D)函数

两个函数都可以用来对小数保留指定小数位数,其中第二个参数D用来指定要保留到第几位。差别是前者会进行四舍五入,而后者不会。

select ROUND(5.55,1);

select TRANCATE(5.55,1);

二者的运行结果分别为:5.6、5.5。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SQL的艺术
推荐于2016-06-30 · SQL写多了就会在追求极致
SQL的艺术
采纳数:2040 获赞数:3323

向TA提问 私信TA
展开全部

问题分析:

1、小数肯定是数字类型

2、百分数肯定是字符类型,另外百分比一般只有两位小数

解决办法:

1、需要先将小数变成百分比,也就是将小数*100,将结果小数位保留为两位

2、再将小数*100转为字符类型后在附加%符号

示例:将小数【0.1234】转为百分比【12.34%】

代码:

select cast(cast(0.1234*100 as numeric(10,2)) as  varchar(50))+'%'
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
射手幽灵伊
推荐于2018-02-26 · TA获得超过2716个赞
知道大有可为答主
回答量:4955
采纳率:81%
帮助的人:1956万
展开全部
select convert(numeric(8,2) ,
cast( (select convert(Numeric(8,2),( select COUNT(*) from 表 where 列1=1229)) /
(select count(列1) from 表))) * 100 as varchar(10) ) + '%'
追问
最后这个*100 as varchar(10))+'%'     (10) 是什么意思啊!!
追答
变成长度是10的字符串,然后再加上%号。

如果不用加%,就不用cast,直接 * 100 就可以了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ttpsan520
2013-07-04 · TA获得超过404个赞
知道小有建树答主
回答量:312
采纳率:100%
帮助的人:313万
展开全部
乘以100 加上 % 咯
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式