在SQL语句里面如何将字符型转换成数字型?

你好,上次问了你一个问题,得到了良好的解决,这次又有新问题了,请多指教。我有一个表,里面有一列是金额,字符型的,现在我想把金额大于5万的提取出来,我用的语句是cast(金... 你好,上次问了你一个问题,得到了良好的解决,这次又有新问题了,请多指教。我有一个表,里面有一列是金额,字符型的,现在我想把金额大于5万的提取出来,我用的语句是cast(金额 as dec)>50000,但是SQL SERVER 2000报错“将数据类型 varchar 转换为 numeric 时出错。”请问该怎么解决啊? 展开
 我来答
大野瘦子
高粉答主

推荐于2019-10-10 · 繁杂信息太多,你要学会辨别
知道小有建树答主
回答量:1227
采纳率:100%
帮助的人:34.1万
展开全部

先检查金额列的数据是否都符合小数规范,用cast(金额 as decimal(10,4))>500或者

convert(decimal(10,4),金额)>500

注:decimal的长度和小数位数根据自己需要设定

sql中将字符串数字转换成数字:

方法一:SELECT CAST('123' AS SIGNED integer);

方法二:SELECT CONVERT('123',SIGNED);

方法三:SELECT '123'+0;

扩展资料:

能将字符型转换成数字型,就能将数字转化为字符,对于精确数值的数据类型,转换出来的字符串就是我们存储的数值。比如:

declare @i int

set @i=123456789

print 'test:'+convert(varchar(20),@i)

输出就是:test:123456789

而如果对于近似数值的数据类型,那么可就没有那么简单了。

declare @i float

set @i=123456789

print 'test:'+convert(varchar(20),@i)

输出结果:test:1.23457e+008

微风8009
推荐于2017-09-18 · TA获得超过304个赞
知道小有建树答主
回答量:251
采纳率:0%
帮助的人:166万
展开全部
先检查金额列的数据是否都符合小数规范


cast(金额 as decimal(10,4))>500
或者
convert(decimal(10,4),金额)>500
试试
decimal的长度和小数位数根据自己需要设定
来自:求助得到的回答
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-07-31 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5155万
展开全部
再加一句and isnumeric(金额)=1
你的金额字段看来还有别的字符不能被转换为数值类型,用上面的方法=0可以查看不能被转换的数据,修改后即可转换
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
micro0369
2013-07-31 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4039万
展开全部
你查询一下表,

金额 这一列, 应该有 不是 数字的情况, 把这些 数据修改成数字的,

就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
丶卜卜星
2013-07-31 · 超过20用户采纳过TA的回答
知道答主
回答量:95
采纳率:0%
帮助的人:52.6万
展开全部
cast(金额 as dec(8,0)),试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式