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

Cómo buscar múltiples cadenas o caracteres en un campo en sql

Si tiene multiple patterns para buscar, entonces es mejor crear una derived table o temporary table para almacenar los patterns

DECLARE @patterns TABLE  (
pattern VARCHAR(20)
);

INSERT INTO @patterns VALUES ('%$%'), ('%[%]%'), ('%ac cd%');

SELECT a.* FROM table_name a JOIN @patterns p ON (a.Description LIKE p.pattern);

Si tiene varias columnas para comparar, simplemente agregue la expresión en ON cláusula

SELECT a.* FROM table_name a JOIN @patterns p ON (a.Description LIKE p.pattern)
OR (a.Column2 like p.pattern);

Actualizado:Usar Ver

CREATE VIEW PatternSearch
AS
 WITH Patterns (Patterns)
  AS
  (
     Select  '%Tool%'
     union all
     Select '%Sale%'
     union all
     Select  '%ac cd%'
  )
   SELECT a.* FROM table_name a JOIN Patterns p ON (a.Description LIKE p.pattern)

GO

No probado, pero puedes hacerlo así

Fuente