Hoe een string omzetten naar een integer met SQL query op SQL Server 2005?
Let er ook op dat bij het omzetten van een numerieke string, bijvoorbeeld '56.72'
naar INT, je op een SQL-fout kunt stuiten.
Conversion failed when converting the varchar value '56.72' to data type int.
Om dit te omzeilen doe je gewoon twee converts als volgt:
STRING -> NUMERIC -> INT
of
SELECT CAST(CAST (MyVarcharCol AS NUMERIC(19,4)) AS INT)
Bij het kopiëren van gegevens van tabelA naar tabelB is de conversie impliciet, zodat u de tweede conversie niet nodig hebt (als u tevreden bent met het afronden naar beneden tot de dichtstbijzijnde INT):
INSERT INTO TableB (MyIntCol)
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol]
FROM TableA
Vanaf SQL Server 2012 kunt u TRY_PARSE of TRY_CONVERT gebruiken.
SELECT TRY_PARSE(MyVarcharCol as int)
SELECT TRY_CONVERT(int, MyVarcharCol)