7个回答
展开全部
numeric有好几种选择,有整形、小数型等等。都是用cast来实现
前提:A表的ID字段是VARCHAR类型
1.SELECT CAST(ID AS INTEGER) FROM A
2.SELECT CAST(ID AS DECIMAL(18,X)) FROM A --X指小数位,如果想保留2位小数则是2,如果不保留小数位则是0
前提:A表的ID字段是VARCHAR类型
1.SELECT CAST(ID AS INTEGER) FROM A
2.SELECT CAST(ID AS DECIMAL(18,X)) FROM A --X指小数位,如果想保留2位小数则是2,如果不保留小数位则是0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
再套一个类型转换就是了。另外转成char会固定占位,格式难看
给你改成varchar了。
cast(cast(sum(case when p.ob_problemstatus='4' then 1 else 0 end)*100/case
when count(*)=0 then 1 else count(*) end as decimal (18,2) ) as varchar)+'%' psrate
给你改成varchar了。
cast(cast(sum(case when p.ob_problemstatus='4' then 1 else 0 end)*100/case
when count(*)=0 then 1 else count(*) end as decimal (18,2) ) as varchar)+'%' psrate
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有一个A表,里面有一个b列,是varchar(18),现在要转换成numeric
select cast(b as decimal(18,2)) from A
FYI
select cast(b as decimal(18,2)) from A
FYI
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select cast(b as decimal(18,0)) from A
适用于SQLServer Oracle 在sqlserver2005 2008报错
selectconvert(decimal(18,0),b) from yourtable
仅适用于SQLServer 这个在sqlserver2005 2008中可以
适用于SQLServer Oracle 在sqlserver2005 2008报错
selectconvert(decimal(18,0),b) from yourtable
仅适用于SQLServer 这个在sqlserver2005 2008中可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那你具体执行是哪句呢?
从提示来看,你是想要转换的字段内容中包含字母了(因为varchar类型,可是全数字的字串,也可以是数字字母组合的字串,乃至于汉字等等),然后你要把它转换成number型,当然会报错的
从提示来看,你是想要转换的字段内容中包含字母了(因为varchar类型,可是全数字的字串,也可以是数字字母组合的字串,乃至于汉字等等),然后你要把它转换成number型,当然会报错的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询