I'm trying a dynamic SQL query but I'm getting an error about conversion but can't figure out what the problem is.
Here's my query :
DECLARE @VarSubCriBusqueda VARCHAR(MAX)
SET @VarSubCriBusqueda = 'Marca'
DECLARE @InputString VARCHAR(MAX)
SET @InputString = '%'
SELECT
Marcas.MarcaID, Marcas.Marca, Clases.ClaseNo, Marcas.Codigo, Propietarios.Propietario
FROM
Marcas
LEFT OUTER JOIN
Propietarios ON marcas.PropietarioID = Propietarios.PropietarioID
LEFT OUTER JOIN
Clases ON Marcas.ClaseIntID = clases.ClaseID
LEFT OUTER JOIN
Clientes ON Clientes.ClienteID = Marcas.ClienteID
WHERE
CASE @VarSubCriBusqueda
WHEN 'Clases.ClaseNo'
THEN Clases.ClaseNo
WHEN 'Codigo'
THEN Codigo
WHEN 'Propietarios.Propietario'
THEN Propietarios.Propietario
WHEN 'Clientes.Empresa'
THEN Clientes.Empresa
WHEN 'Contacto'
THEN Marcas.Contacto
WHEN 'Marca'
THEN Marca
END LIKE @InputString
It end with the following message:
Msg 245, Level 16, State 1, Line 6
Conversion failed when converting the varchar value 'ACADEMY AWARDS' to data type int.
Any help?
WHEREclause supposed to be doing? Most likely, aCASEexpression is not what you need there. - Tim Biegeleisen