Estaba tratando de escribir una declaración que usa la cláusula WHERE LIKE '% text%', pero no recibo resultados cuando intento usar un parámetro para el texto. Por ejemplo, esto funciona:
SELECT Employee WHERE LastName LIKE '%ning%'
Esto devolvería a los usuarios Flenning, Manning, Ningle, etc. Pero esta declaración no:
DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%@LastName%'
No se han encontrado resultados. ¿Alguna sugerencia? Gracias por adelantado.
sql
sql-server-2008
tsql
dp3
fuente
fuente
La respuesta correcta es que, debido a que el
'%'
signo-es parte de su expresión de búsqueda, debe ser parte de su VALOR, así que dondequiera que lo establezca@LastName
(ya sea desde un lenguaje de programación o desde TSQL) debe configurarlo'%' + [userinput] + '%'
o, en tu ejemplo:
DECLARE @LastName varchar(max) SET @LastName = 'ning' SELECT Employee WHERE LastName LIKE '%' + @LastName + '%'
fuente
puedes probar este, usado CONCAT
fuente