你好,上次问了你一个问题,得到了良好的解决,这次又有新问题了,请多指教。我有一个表,里面有一列是金额,字符型的,现在我想把金额大于5万的提取出来,我用的语句是cast(金额 as dec)>50000,但是SQL SERVER 2000报错“将数据类型 varchar 转换为 numeric 时出错。”请问该怎么解决啊?
先检查金额列的数据是否都符合小数规范,用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