sql中如何将varchar转换为numeric

sql中如何将varchar转换为numeric

第1个回答  2011-01-13
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
第2个回答  2011-09-30
再套一个类型转换就是了。另外转成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
第3个回答  推荐于2016-09-12
有一个A表,里面有一个b列,是varchar(18),现在要转换成numeric
select cast(b as decimal(18,2)) from A

FYI本回答被提问者采纳
第4个回答  2015-06-11
select cast(b as decimal(18,0)) from A

适用于SQLServer Oracle 在sqlserver2005 2008报错

selectconvert(decimal(18,0),b) from yourtable
仅适用于SQLServer 这个在sqlserver2005 2008中可以
第5个回答  2011-01-14
那你具体执行是哪句呢?
从提示来看,你是想要转换的字段内容中包含字母了(因为varchar类型,可是全数字的字串,也可以是数字字母组合的字串,乃至于汉字等等),然后你要把它转换成number型,当然会报错的