Comment convertir une chaîne en entier à l'aide d'une requête SQL sur SQL Server 2005?
sql
sql-server-2005
Rahul Vyas
la source
la source
select CASE WHEN ISNUMERIC('x') = 1 THEN CAST('x' AS INT) ELSE 0 END
IsNumeric()
peut produire des résultats pervers. Il renverra TRUE pour la chaîne "-.", Ce qui provoquera toujours une erreur lorsque vous essayez de la convertir en nombre.Sachez également que lors de la conversion d'une chaîne numérique, c'est-
'56.72'
à- dire vers INT, vous pouvez rencontrer une erreur SQL.Pour contourner ce problème, effectuez simplement deux conversions comme suit:
STRING -> NUMERIC -> INT
ou
Lors de la copie de données de TableA vers TableB, la conversion est implicite, vous n'avez donc pas besoin de la deuxième conversion (si vous êtes heureux d'arrondir à l'INT le plus proche):
la source
À partir de SQL Server 2012, vous pouvez utiliser TRY_PARSE ou TRY_CONVERT .
la source
Essayez celui-ci, cela a fonctionné pour moi à Athéna:
la source