如何在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)

试试这个,我在《Athena》中就用过:

cast(MyVarcharCol as integer)