我是用下面的语句
cast(str_jg as float)
但是报错(sql 2005)
6 个解决方案
#1
declare @c1 varchar(10),@c2 varchar(10),@c3 varchar(10)
select @c1='3',@c2='3.14',@c3='3.14E-5'
select cast(@c1 as float),cast(@c2 as float),cast(@c3 as float)
/*
---------------------- ---------------------- ----------------------
3 3.14 3.14E-05
(1 行受影响)
*/
哪儿错了?
#2
declare @a varchar(10)
select @a='0.39'
select cast(@a as float)
0.3900000000000000
declare @b varchar(10)
select @b='50'
select cast(@b as float)
50.0
select @a='0.39'
select cast(@a as float)
0.3900000000000000
declare @b varchar(10)
select @b='50'
select cast(@b as float)
50.0
#3
select cast('0.39' as float)
union
select cast('50' as float)
运行没错的啊,哪里错了,提示什么错误呢 ??
#4
估计有字母、空格什么的
#5
看看是哪一行报的错:
select * from tb where isnumeric(str_jg)=0
#6
多谢各位!
问题解决了,是因为我的数字是金额,象“1,240.00”这样的中间含有逗号的金额就不能转换,必须先通过replace将逗号转换后才能执行,马上给分咯。
问题解决了,是因为我的数字是金额,象“1,240.00”这样的中间含有逗号的金额就不能转换,必须先通过replace将逗号转换后才能执行,马上给分咯。
#1
declare @c1 varchar(10),@c2 varchar(10),@c3 varchar(10)
select @c1='3',@c2='3.14',@c3='3.14E-5'
select cast(@c1 as float),cast(@c2 as float),cast(@c3 as float)
/*
---------------------- ---------------------- ----------------------
3 3.14 3.14E-05
(1 行受影响)
*/
哪儿错了?
#2
declare @a varchar(10)
select @a='0.39'
select cast(@a as float)
0.3900000000000000
declare @b varchar(10)
select @b='50'
select cast(@b as float)
50.0
select @a='0.39'
select cast(@a as float)
0.3900000000000000
declare @b varchar(10)
select @b='50'
select cast(@b as float)
50.0
#3
select cast('0.39' as float)
union
select cast('50' as float)
运行没错的啊,哪里错了,提示什么错误呢 ??
#4
估计有字母、空格什么的
#5
看看是哪一行报的错:
select * from tb where isnumeric(str_jg)=0
#6
多谢各位!
问题解决了,是因为我的数字是金额,象“1,240.00”这样的中间含有逗号的金额就不能转换,必须先通过replace将逗号转换后才能执行,马上给分咯。
问题解决了,是因为我的数字是金额,象“1,240.00”这样的中间含有逗号的金额就不能转换,必须先通过replace将逗号转换后才能执行,马上给分咯。