Ako previesť reťazec na celé číslo pomocou dotazu SQL na serveri SQL Server 2005?
Tiež si uvedomte, že pri konverzii z číselného reťazca, t. j. '56.72'
na INT, môžete naraziť na chybu SQL.
Conversion failed when converting the varchar value '56.72' to data type int.
Aby ste to obišli, stačí vykonať dva prevody takto:
STRING -> NUMERIC -> INT
alebo
SELECT CAST(CAST (MyVarcharCol AS NUMERIC(19,4)) AS INT)
Pri kopírovaní údajov z tabuľkyA do tabuľkyB je konverzia implicitná, takže druhú konverziu nepotrebujete (ak vám vyhovuje zaokrúhľovanie na najbližší INT):
INSERT INTO TableB (MyIntCol)
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol]
FROM TableA
Od servera SQL Server 2012 môžete použiť TRY_PARSE alebo TRY_CONVERT.
SELECT TRY_PARSE(MyVarcharCol as int)
SELECT TRY_CONVERT(int, MyVarcharCol)