oracle中的to_char() 在sqlserver2008中如何使用? 如下面的语句

Selectb.unit_name,a.amount1,a.amount2,a.amount3,a.amount,to_char((a.Rate1*100),'fm999... 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') || '%' Rate
From rv_tmp_report_sideways a,rv_unit b Where a.unit_id = b.unit_id
如何修改to_char() 在sqlserver2008下能运行
展开
 我来答
百度网友02af07bde
推荐于2018-03-26
知道答主
回答量:6
采纳率:100%
帮助的人:5.8万
展开全部
用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
睡如此
2012-10-12 · TA获得超过126个赞
知道小有建树答主
回答量:113
采纳率:0%
帮助的人:133万
展开全部
若能保证a.Rate可以强行转换为数字(就是说里面保存的只有数字)的话

可以使用 Convert(decimal(18,2),a.Rate1 * 100) 来转换成格式为保留小数点后2位数字,总长度最高18位的数字.

若是a.Rate还含有小数的话 修改为
Convert(decimal(18,2),a.Rate1 * 100.00)
即可执行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ahua0597
2012-10-12 · TA获得超过107个赞
知道小有建树答主
回答量:303
采纳率:50%
帮助的人:150万
展开全部
to_char fm的作用是去空格,可以忽视,990.00 sqlserver里不记得有没这个用法,如果没有就改成999.00好了,无非就是 0.23显示成.23而已
追问
SQL SERVER2008中好像用的不是TO_CHAR()方法
追答
sqlserver: str(number,10,3)   取number10位,小数点后面3位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wlzjsj
2012-10-12 · TA获得超过113个赞
知道答主
回答量:91
采纳率:0%
帮助的人:29.1万
展开全部
可以用cast来替代试试,
类似:select cast('79.3916690681319'asdecimal(18,13))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qiaochao911
2012-10-12
知道答主
回答量:8
采纳率:0%
帮助的人:1.3万
展开全部
CONVERT() 函数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式