sqlserver中怎么把varchar类型转换成numeric类型,如下句子

2024-12-28 04:52:38
推荐回答(5个)
回答1:

代码问题:”100.1%”这种带有非数字的字符是不可以转换成numeric的。

改正方法:你可以将数字除以100,变为“1.001”再转换成numeric。                                                       set @lastbl1 =“1.001”                                                                                                           set @lastbl2 =  CAST( @lastbl1 AS numeric(10,2))



扩展资料:

1.SQL Server中可以使用cast和convert函数进行数据类型的转换。

如:set @lastbl2= CAST( @lastbl1 AS numeric(10,2))    

或   set @lastbl2= CONVERT(numeric(10,2),@lastbl1 )

2.cast与convert的不同:convert多用于关于日期时间的转换;cast一般用于小数数值和字符型。

如:select CONVERT(varchar(12) , getdate(),111 ) -- 2017/08/13

参考资料:

百度百科--CAST和CONVERT

回答2:

1、打开数据库连接客户端Navicat Premium ,创建一个新的表结构,这里age这列 故意 设置为 varchar。

2、创建表成功之后,为刚刚的表创建一些数据。

3、在数据量少的时候可以使用sum()函数直接求和,因为SQL中它可以自动识别是字符串类型还是数字类型。

4、以上适用于整数,或者是数据量小,要是数据量太大,并且精度较高不适用,那么就可以考虑使用SQL 的CAST()和CONVERT()函数。

5、在接着看看CONVERT()函数,这个函数主要是服务于要求精度的需求,这里改改原始的数据,把age列改为带小数的用于测试一下这个函数。

回答3:

可以用cast来转换

如:列名叫grade,表名为A

select cast(grade as numeric(y,x)) from A

其中y代表数据长度,x代表小数位长度

注意:grade中必须全为数字或小数点,如果存在中文或英文,则运行时会报错。

回答4:

示例:select cast('10201.210114' as numeric(18,4))
CONVERT 函数和 CAST 函数

语法:
CAST ( expression AS data_type [ (length ) ])
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )



CAST(varchar列名 AS numeric(10,2))
CONVERT(numeric(10,2), varchar列名)
-- 注意,如果varchar列不是数字会出错
疑问点:你的意图是什么? 那个% 可以直接除以100啊?

回答5:

18.4% 这个在数据库里面只能是字符类型,如果你要显示18.4,只能在查询结果里面或者程序处理