SQL Server, сочетающий LIKE и IN? - PullRequest
       4

SQL Server, сочетающий LIKE и IN?

4 голосов
/ 07 декабря 2011

Существует ли простой способ объединить LIKE и IN в одном операторе в SQL Server, не используя много AND и OR?

например. Я знаю, что в MySQL вы можете сделать это следующим образом:

SELECT * FROM table1 WHERE column1 REGEXP 'value1|value2|value3'

Ответы [ 2 ]

6 голосов
/ 07 декабря 2011

Не совсем.

В синтаксисе шаблона LIKE нет оператора чередования. Если в 2008 году вы можете использовать

SELECT *
FROM   table1
WHERE  EXISTS(SELECT *
              FROM   (VALUES ('value1'),
                             ('value2'),
                             ('value3')) Vals(val)
              WHERE  column1 LIKE '%' + val + '%')  

Вы также можете использовать регулярные выражения в SQL Server, но не в своем роде. Для этого вам нужно включить CLR и установить сборку.

0 голосов
/ 07 декабря 2011

Другой вариант - поместить значения поиска в таблицу и построить динамический SQL для выполнения этой работы. Не рекомендуется, но иногда помогает ...

...