Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come cercare più stringhe o caratteri in un campo in sql

Se hai multiple patterns per cercare allora è meglio creare una derived table o temporary table per memorizzare i 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 hai più colonne da confrontare, aggiungi un'espressione in ON clausola

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

Aggiornato:utilizzo della visualizzazione

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

Non testato ma puoi fare così

Fonte