如何在SQL Server 2005上使用SQL查询将字符串转换为整数?
你可以使用CAST或CONVERT:
SELECT CAST(MyVarcharCol AS INT) FROM Table
SELECT CONVERT(INT, MyVarcharCol) FROM Table
还要注意,当从数字字符串如“56.72”转换为INT时,您可能会遇到SQL错误。
Conversion failed when converting the varchar value '56.72' to data type int.
为了解决这个问题,只需做两个转换如下:
字符串-> numeric -> int
or
SELECT CAST(CAST (MyVarcharCol AS NUMERIC(19,4)) AS INT)
当从TableA复制数据到TableB时,转换是隐式的,所以你不需要第二次转换(如果你喜欢四舍五入到最近的INT):
INSERT INTO TableB (MyIntCol)
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol]
FROM TableA
从SQL Server 2012开始,您可以使用TRY_PARSE或TRY_CONVERT。
SELECT TRY_PARSE(MyVarcharCol as int)
SELECT TRY_CONVERT(int, MyVarcharCol)
推荐文章
- 如何在Ruby On Rails中使用NuoDB手动执行SQL命令
- 查询JSON类型内的数组元素
- 确定记录是否存在的最快方法
- 获得PostgreSQL数据库中当前连接数的正确查询
- 在SQL选择语句Order By 1的目的是什么?
- 我如何循环通过一组记录在SQL Server?
- 数据库和模式的区别
- 如何从命令行通过mysql运行一个查询?
- 外键约束可能导致循环或多条级联路径?
- 使用LIMIT/OFFSET运行查询,还可以获得总行数
- 当恢复sql时,psql无效命令\N
- 货币应该使用哪种数据类型?
- 如何选择每一行的列值不是独特的
- 如何改变字符集(和排序)在整个数据库?
- mySQL:: insert到表,数据从另一个表?