Comment convertir une chaîne en entier à l'aide d'une requête SQL sur SQL Server 2005?
Vous pouvez utiliser CAST ou CONVERT :
SELECT CAST(MyVarcharCol AS INT) FROM Table
SELECT CONVERT(INT, MyVarcharCol) FROM Table
Sachez également que lors de la conversion d'une chaîne numérique, à savoir '56.72'
vers INT, vous risquez de vous heurter à une erreur SQL.
Conversion failed when converting the varchar value '56.72' to data type int.
Pour contourner ce problème, effectuez deux conversions comme suit:
STRING -> NUMERIC -> INT
ou
SELECT CAST(CAST (MyVarcharCol AS NUMERIC(19,4)) AS INT)
Lors de la copie de données de TableA vers TableB, la conversion est implicite, vous n’avez donc pas besoin de la seconde conversion (si vous arrondissez bien à l’INT le plus proche):
INSERT INTO TableB (MyIntCol)
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol]
FROM TableA
À partir de SQL Server 2012, vous pouvez utiliser TRY_PARSE ou TRY_CONVERT .
SELECT TRY_PARSE(MyVarcharCol as int)
SELECT TRY_CONVERT(int, MyVarcharCol)
essayez celui-ci cela a fonctionné pour moi dans le casting Athena (MyVarcharCol en tant qu'entier)