Сравнение значений с многозначным столбцом в таблице базы данных SQL - PullRequest
0 голосов
/ 25 марта 2010

Предположим, что есть таблица A с многозначным столбцом AccessRights (например, значения в этом формате STOLI, HELP, BRANCH (строка, разделенная запятыми)

Теперь для этой таблицы записывается хранимая процедура для выборки записей на основе параметра AccessRight, отправленного в SP. Пусть этот параметр будет @AccessRights, это также строка, разделенная запятыми, которая может иметь такие значения, как STOLI, BRANCH, HELPLINE и т. Д.

Теперь я хочу сравнить отдельные значения из параметра @AccessRights со столбцом AccessRights.

Текущий подход заключается в разделении строки, разделенной запятыми (@AccessRights), с использованием функции разделения, определенной пользователем. И я получаю индивидуальные значения в табличной переменной (содержит только один столбец "accessGroup"), отдельные значения находятся в табличной переменной под именем столбца accessGroup, и я использую следующий код в SP для сравнения

Where AccessRights like '%'+accessGroup+'%'

Теперь, если пользователь передает параметр (HELP, OLI) вместо (HELP, STOLI), SP выдаст вывод. Что нужно сделать для сравнения, чтобы эта подстрока OLI не дала вывод для STOLI

Ответы [ 2 ]

1 голос
/ 25 марта 2010

Следующий трюк должен это сделать (самодокументированный):

WHERE (',' + AccessRights + ',') LIKE ('%,' + accessGroup  + ',%')

Но в идеале разделите обе стороны на таблицы и сравните значения.

1 голос
/ 25 марта 2010

Разделите обе коллекции, сохраните их во временных таблицах # и присоединитесь к ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...