Во-первых, использование like
для точных совпадений является неоптимальным. Мог бы также использовать =
, и если это так, то вы можете использовать IN
синтаксис:
select * from xxx
where tags IN ('oscar', 'rahman', 'slumdog')
Я предполагаю, что вы не ищете точное соответствие, но и для любой записи, где tags
поле содержит все из теги.
Это было бы что-то вроде этого:
select * from xxx
where tags like '%oscar%'
and tags like '%rahman%'
and tags like '%slumdog%'
Это будет не очень быстро или производительным, хотя.
Подумайте о переносе этой логики в ваше приложение, где это быстрее и проще.
Edit:
После комментариев - есть много примеров того, как parsedelimitedstrings там. Вы можете поместить их в таблицу и использовать dynamic sql для генерации запроса.
Но это будет иметь плохую производительность, и SQL Server не сможет кэшировать планы запросов для такого рода вещей. Как я уже говорил, подумайте о том, чтобы перевести эту логику на уровень приложений.
Есть ли причина того, что вам нужно проанализировать файл с помощью SQL Server в качестве СУБД лучше для хранения данных и не очень, предназначенные для разбора CSV файлов. – Kane
привет, мистер Кейн, на самом деле в моем проекте у меня есть кнопки поиска, там пользователь может дать любые имена комбинаций. как я могу написать storeprocedure. –