如何在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)
推荐文章
- 在SQL Server 2008 R2中重命名数据库时出错
- 将数据复制到另一个表中
- 如何在SQL中选择表的最后一条记录?
- SQL在Oracle中连接多行列值的查询
- 在单个查询中计算空值和非空值
- 在存储过程中使用“SET XACT_ABORT ON”有什么好处?
- SQL to LINQ工具
- 如何从一个查询插入多行使用雄辩/流利
- 如何连接列在Postgres选择?
- 有人可以对SQL查询进行版权保护吗?
- 如何知道MySQL表最近一次更新?
- 如何转储一些SQLite3表的数据?
- 如何检查SQL Server文本列是否为空?
- 如何创建一个SQL Server函数“连接”多行从一个子查询到一个单独的分隔字段?
- 在MySQL中的一个查询中更新多个具有不同值的行