sql语句中怎样将字符类型转换成数字类型

 我来答
momo7572
2018-04-05 · TA获得超过2.4万个赞
知道小有建树答主
回答量:98
采纳率:71%
帮助的人:4万
展开全部

先检查金额列的数据是否都符合小数规范,转为数字格式只有是数字的字符串才能转,如000012转为12,.55转为0.55,若是个英文符号等字符转了就报无效数字类型的错。

转换的方式很多,但是字符串转换成数字的前提是字符串中只包含了数字或者小数点。 

可使用convert函数,cast 和convert可以显式转换数据类型,在某些情况下SQL会根据实际情况自动转换!不过建议显式的转换一下,这样的话可读性高一点! 

因为字符串不一定能转换成数字,所以用上面的,加上错误处理比较。

例子:

declare @a varchar(10)

set @a='as23'

select case when isnumeric(@a)=1 then cast(@a as int) else null end

set @a='23'

select case when isnumeric(@a)=1 then cast(@a as int) else null end

结果:

declare @a varchar(10)

set @a='as23'

select case when isnumeric(@a)=1 then cast(@a as int) else null end

set @a='23'

select case when isnumeric(@a)=1 then cast(@a as int) else null end

海影幻
推荐于2017-12-16 · TA获得超过230个赞
知道小有建树答主
回答量:198
采纳率:75%
帮助的人:52万
展开全部
to_number()转为数字格式
to_char()转为字符串格式
to_date()转为时间格式
..........
转为数字格式只有是数字的字符串才能转,这句话可能有点歧义, 通常字符前面带0或点的数字字符串转数字用到,如000012转为12,.55转为0.55,若是个英文符号等字符转了就报无效数字类型的错,如果遇到两种数据类型不一致情况数据库默认是会转的,如关联 ta.a=ba.b ta.a是字符串,ba.b是数字,或者将ta.a插入到ba.b数据库就会自动转
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wkf84622
2016-11-15 · TA获得超过289个赞
知道小有建树答主
回答量:545
采纳率:50%
帮助的人:205万
展开全部
cast('111' as int) 不过首先你得判断是不是 数字 isnumber('111')=1 是数字 =0 不是数字
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2016-11-15
展开全部
int i = new Integer("2");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式