Converteer een string naar int met behulp van sql-query

Hoe converteer je een string naar een geheel getal met SQL-query op SQL Server 2005?


Antwoord 1, autoriteit 100%

U kunt CAST of CONVERTgebruiken:

SELECT CAST(MyVarcharCol AS INT) FROM Table
SELECT CONVERT(INT, MyVarcharCol) FROM Table

Antwoord 2, autoriteit 4%

Houd er ook rekening mee dat u bij het converteren van een numerieke tekenreeks, bijv. '56.72'naar INT, een SQL-fout kunt tegenkomen.

Conversion failed when converting the varchar value '56.72' to data type int.

Om dit te omzeilen, voert u twee bekeerlingen als volgt uit:

STRING -> NUMERIEK -> 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, dus je hebt de tweede conversie niet nodig (als je tevreden bent naar beneden af te ronden naar de dichtstbijzijnde INT):

INSERT INTO TableB (MyIntCol)
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol]
FROM TableA

Antwoord 3, autoriteit 4%

Vanaf SQL Server 2012 kunt u TRY_PARSEof TRY_CONVERT.

SELECT TRY_PARSE(MyVarcharCol as int)
SELECT TRY_CONVERT(int, MyVarcharCol)

Antwoord 4

Probeer deze, het werkte voor mij in Athena:

cast(MyVarcharCol as integer)

Other episodes