¿Cómo convertir una cadena a entero usando la consulta SQL en SQL Server 2005?
sql
sql-server-2005
Rahul Vyas
fuente
fuente
select CASE WHEN ISNUMERIC('x') = 1 THEN CAST('x' AS INT) ELSE 0 END
IsNumeric()
puede producir algunos resultados perversos. Devolverá VERDADERO para la cadena "-.", Que seguirá causando un error cuando intente convertirlo en un número.También tenga en cuenta que al convertir una cadena numérica, es decir,
'56.72'
a INT, puede encontrar un error de SQL.Para evitar esto, solo haga dos conversiones de la siguiente manera:
STRING -> NUMÉRICO -> INT
o
Al copiar datos de TableA a TableB, la conversión es implícita, por lo que no necesita la segunda conversión (si está satisfecho redondeando al INT más cercano):
fuente
A partir de SQL Server 2012, puede usar TRY_PARSE o TRY_CONVERT .
fuente
Prueba este, me funcionó en Athena:
fuente