Kaip konvertuoti eilutę į sveiką skaičių naudojant SQL užklausą SQL serveryje 2005?
Taip pat reikia žinoti, kad konvertuojant skaičių eilutę, t. y. '56.72'
į INT, galite susidurti su SQL klaida.
Conversion failed when converting the varchar value '56.72' to data type int.
Norėdami tai apeiti, tiesiog atlikite du konvertavimus taip:
STRING -> NUMERIC -> INT
arba
SELECT CAST(CAST (MyVarcharCol AS NUMERIC(19,4)) AS INT)
Kopijuojant duomenis iš lentelėsA į lentelęB, perskaičiavimas yra numanomas, todėl jums nereikia antrojo konvertavimo (jei jums tinka apvalinimas iki artimiausio INT):
INSERT INTO TableB (MyIntCol)
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol]
FROM TableA
Nuo "SQL Server 2012" galite naudoti TRY_PARSE arba TRY_CONVERT.
SELECT TRY_PARSE(MyVarcharCol as int)
SELECT TRY_CONVERT(int, MyVarcharCol)