sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man söker efter flera strängar eller tecken i ett fält i sql

Om du har multiple patterns för att söka är det bättre att skapa en derived table eller temporary table för att lagra 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);

Om du har flera kolumner att jämföra, lägg bara till uttryck i ON klausul

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

Uppdaterad:Använder Visa

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

Inte testat men du kan göra så här

Källa




  1. Exportera big data från PostgreSQL till AWS s3

  2. installationen av mysql2 gem misslyckas

  3. SQL Senaste bilder från kontakter (grupperade efter kontakt)

  4. Hur man summerar ny och senast infogade post med samma ID och infogar resultat i ny post