Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So suchen Sie mehrere Zeichenfolgen oder Zeichen in einem Feld in SQL

Wenn Sie multiple patterns haben um zu suchen, ist es besser, eine derived table zu erstellen oder temporary table um die patterns zu speichern

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);

Wenn Sie mehrere Spalten zum Vergleichen haben, fügen Sie einfach einen Ausdruck in ON hinzu Klausel

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

Aktualisiert:Ansicht verwenden

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

Nicht getestet, aber Sie können so vorgehen

Quelle