sql >> Database >  >> RDS >> Sqlserver

Hoe meerdere tekenreeksen of tekens in een veld in sql te zoeken

Als je multiple patterns hebt om te zoeken is het beter om een ​​derived table te maken of temporary table om de patterns op te slaan

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

Als u meerdere kolommen heeft om te vergelijken, voegt u gewoon een uitdrukking toe in de ON clausule

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

Bijgewerkt:weergave gebruiken

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

Niet getest, maar je kunt het zo doen

Bron




  1. JPA Hibernate Persistence-uitzondering [PersistenceUnit:standaard] Kan Hibernate SessionFactory niet bouwen

  2. MySQL retourneert false wanneer meerdere rijen voldoen aan de WHERE-clausule

  3. Postgres:Hoe formatteer ik een int-tijdstempel als leesbare datumstring?

  4. FOUT 2002 (HY000):Kan geen verbinding maken met lokale MySQL-server via socket '/var/run/mysqld/mysqld.sock' (2)