Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wyszukiwać wiele ciągów lub znaków w polu w sql

Jeśli masz multiple patterns do wyszukiwania, lepiej jest utworzyć derived table lub temporary table do przechowywania 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);

Jeśli masz wiele kolumn do porównania, po prostu dodaj wyrażenie w ON klauzula

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

Aktualizacja:Korzystanie z widoku

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

Nie testowano, ale możesz to zrobić

Źródło




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Warunki warunkowe w SQL Server

  2. Znajdź brakujące przedziały czasowe w tabeli

  3. SQL Identity z wiodącymi dopełnionymi zerami

  4. Dynamiczny SQL (przekazywanie nazwy tabeli jako parametru)

  5. Jak używać parametru z LIKE w Sql Server Compact Edition