为了账号安全,请及时绑定邮箱和手机立即绑定

你好,请问该如何修改to_char() 在sqlserver2008下能运行?

你好,请问该如何修改to_char() 在sqlserver2008下能运行?

千巷猫影 2022-04-15 16:11:11
Select b.unit_name ,a.amount1,a.amount2,a.amount3,a.amount ,to_char((a.Rate1 * 100),'fm9999999990.00') || '%' Rate1,to_char((a.Rate2 * 100),'fm9999999990.00') || '%' Rate2,to_char((a.Rate3 * 100)),to_char((a.Rate * 100),'fm9999999990.00') || '%' RateFrom rv_tmp_report_sideways a,rv_unit b Where a.unit_id = b.unit_id如何修改to_char() 在sqlserver2008下能运行
查看完整描述

2 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

用Round() + Cast()就可以:
Select b.unit_name ,a.amount1,a.amount2,a.amount3,a.amount ,
cast(Round((a.Rate1 * 100),2) as varchar(13))+'%' Rate1,
cast(Round((a.Rate2 * 100),2) as varchar(13))+'%' Rate2,
cast(Round((a.Rate3 * 100),2) as varchar(13)),
cast((Round((a.Rate * 100),2) as varchar(13)) +'%' Rate
From rv_tmp_report_sideways a,rv_unit b Where a.unit_id = b.unit_id

查看完整回答
反对 回复 2022-04-19
?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

若能保证a.Rate可以强行转换为数字(就是说里面保存的只有数字)的话
可以使用 Convert(decimal(18,2),a.Rate1 * 100) 来转换成格式为保留小数点后2位数字,总长度最高18位的数字.
若是a.Rate还含有小数的话 修改为
Convert(decimal(18,2),a.Rate1 * 100.00)
即可执行

查看完整回答
反对 回复 2022-04-19
  • 2 回答
  • 0 关注
  • 660 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号