Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да търсите множество низове или знаци в поле в sql

Ако имате multiple patterns за търсене, тогава е по-добре да създадете derived table или temporary table за съхраняване на 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);

Ако имате няколко колони за сравнение, просто добавете израз в ON клауза

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

Актуализирано:Използване на изглед

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

Не е тествано, но можете да направите това

Източник




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съхранена процедура, подайте името на таблицата като параметър

  2. Вземете първия ден от седмицата в SQL Server

  3. Заявка за връзка между родител и дете на най-високо ниво

  4. Връщане на данни преди текущия месец

  5. SQL Добавяне на външен ключ към съществуваща колона