SQL Server 2005でSQLクエリを使用して文字列を整数に変換するにはどうすればよいですか?
また、数値文字列(例:'56.72')をINTに変換する際には、SQLエラーが発生する可能性がありますのでご注意ください。
Conversion failed when converting the varchar value '56.72' to data type int.
これを回避するには、次のように2つの変換を行います。
STRING -> NUMERIC -> INT
または
SELECT CAST(CAST (MyVarcharCol AS NUMERIC(19,4)) AS INT)
TableAからTableBにデータをコピーする場合、変換は暗黙的に行われますので、2つ目の変換は必要ありません(直近の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)