Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como pesquisar várias strings ou caracteres em um campo no sql


Se você tiver multiple patterns para pesquisar, então é melhor criar uma derived table ou temporary table para armazenar os 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);

Se você tiver várias colunas para comparar, basta adicionar expressão no ON cláusula
SELECT a.* FROM table_name a JOIN @patterns p ON (a.Description LIKE p.pattern)
OR (a.Column2 like p.pattern);

Atualizado:usando a visualização
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

Não testado, mas você pode fazer assim

Fonte