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