TSQL PATINDEX Поиск точного значения в списке через запятую - PullRequest
0 голосов
/ 26 октября 2011

Привет, мне нужно проверить, существует ли мое значение в списке через запятую.

Например

DECLARE @list NVARCHAR = '6,3,67,34';

SELECT Column1, Column2 FROM Table1
WHERE PATINDEX ('%' + CONVERT(NVARCHAR, Table1.ID) + '%', @list)

Он должен возвращать строки с полем идентификатора 6, 3, 67 или 34.

Как я могу сделать с или без PATINDEX?

1 Ответ

3 голосов
/ 26 октября 2011

Добавьте начальные и конечные запятые к @list и Table1.ID в поиске:

SELECT Column1, Column2
    FROM Table1
    WHERE CHARINDEX(',' + CONVERT(NVARCHAR, Table1.ID) + ',', ',' + @list + ',') <> 0;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...