Wie konvertiert man eine Zeichenkette in eine ganze Zahl mit einer SQL-Abfrage auf SQL Server 2005?
Sie können CAST oder CONVERT verwenden:
SELECT CAST(MyVarcharCol AS INT) FROM Table
SELECT CONVERT(INT, MyVarcharCol) FROM Table
Beachten Sie auch, dass Sie bei der Konvertierung von numerischen Zeichenfolgen, z. B. "56.72" in INT, auf einen SQL-Fehler stoßen können.
Conversion failed when converting the varchar value '56.72' to data type int.
Um dies zu umgehen, führen Sie einfach zwei Konvertierungen wie folgt durch:
STRING -> NUMERIC -> INT
oder
SELECT CAST(CAST (MyVarcharCol AS NUMERIC(19,4)) AS INT)
Beim Kopieren von Daten aus TabelleA in TabelleB erfolgt die Konvertierung implizit, so dass Sie die zweite Konvertierung nicht benötigen (wenn Sie auf die nächste INT abrunden möchten):
INSERT INTO TableB (MyIntCol)
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol]
FROM TableA
Ab SQL Server 2012 können Sie TRY_PARSE oder TRY_CONVERT verwenden.
SELECT TRY_PARSE(MyVarcharCol as int)
SELECT TRY_CONVERT(int, MyVarcharCol)