sql >> Base de Datos >  >> RDS >> Sqlserver

Reparar "Error de conversión al convertir el valor varchar" al intentar concatenar en SQL Server

Si recibe el mensaje de error 245 que dice "La conversión falló al convertir el valor varchar..." al intentar realizar una operación de concatenación en SQL Server, es probable que esté intentando concatenar una cadena y un numero

Hacer esto resultará en un error, debido a que SQL Server intenta agregar la cadena y el número en lugar de concatenarlos.

Para solucionar esto, convierta el número en una cadena o use una función como CONCAT() o CONCAT_WS() para realizar la concatenación.

El Error

Aquí hay un ejemplo de código que causa el error:

SELECT 'Player ' + 456;

Resultado:

Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the varchar value 'Player ' to data type int.

SQL Server cree que estamos tratando de agregar los dos operandos, por lo que se encuentra con un problema al intentar agregar la cadena y el número.

Solución 1

Una forma de resolver este problema es convertir explícitamente el número en una cadena:

SELECT 'Player ' + CAST(456 AS varchar(3));

Resultado:

Player 456

Esto hace que SQL Server comprenda que estamos tratando de concatenar los operandos en lugar de agregarlos.

Solución 2

Otra forma de hacerlo es usar una función como CONCAT() para realizar la concatenación:

SELECT CONCAT('Player ', 456);

Resultado:

Player 456

CONCAT() es una función de cadena, por lo que SQL Server ahora entiende que queremos concatenar dos cadenas en lugar de agregar dos números.

Alternativamente, podríamos usar CONCAT_WS() función, que nos permite especificar un separador para usar entre los argumentos concatenados.