Просто заметил это. Есть много способов ее решения, но вот один гибкий метод, который вы можете использовать с решениями для составления отчетов. Мне просто довелось решить одну и ту же проблему в прошлом, и я никогда не передавал проблему; о). Заранее извиняюсь, если это не разбирается - забил и возился с памятью, но вы должны понять -
CREATE FUNCTION fn_PatList (@PatList VARCHAR(200))
RETURNS @SearchList TABLE (Pattern VARCHAR(100))
AS
BEGIN
WHILE @PatList LIKE '%,%'
BEGIN
SELECT @PatList = LTRIM(RTRIM(@PatList))
INSERT INTO @SearchList
SELECT RTRIM(LEFT(@PatList,PATINDEX('%,%',@PatList)-1))
SELECT @PatList = SUBSTRING(@PatListmPATINDEX('%,%',@PatList)+1, 8000)
END
INSERT INTO @SearchList
SELECT LTRIM(RTRIM(@PatList))
RETURN
END
Это общая суть - извинения за любые ошибки до сих пор. Биты, чтобы сделать в ближайшее время.
Теперь ..
SELECT Names.Person
FROM Names
INNER JOIN Fn_PatList ('Fred%,John%') PatList
ON Names.Person LIKE PatList.Pattern
Возможно, вы захотите разрешить пробелы, то есть пробелы между запятыми и другим мусором. Короче говоря, теперь вы можете использовать свою функцию для обслуживания списков шаблонов. Надеюсь, это удовлетворяет вашим требованиям - с ними довольно легко работать. Возможно, вам захочется рассмотреть вопрос и об индексации, но вы можете взять ее оттуда.