2014-01-04 3 views
-1

Я использую SQL Server 2008.Выделяя значения в колонке внутри хранимой процедуры

У меня есть таблица, в которой хранится информация о которых отправить уведомление и один из столбцов хранятся абонентские идентификаторов, таких как 3,4,5 таким образом.

Я передаю userid моей хранимой процедуре, и я хочу вернуть набор результатов, если пройденный идентификатор пользователя содержит данные внутри столбца.

Как будто я прохожу 4, а мои идентификаторы подписчиков 3,4,5, так как 4 присутствует, мне нужно выбрать эту строку.

 SELECT twfNotification.NotificationMessage , 

     FROM twfNotification 

     WHERE @iSubscribedID in (twfNotification.SubscribedUsers) 

'twfNotification.SubscribedUsers -> NVARCHAR'

twfNotification.SubscribedUsers были данные, такие как 3,4,5 и я передаю @iSubscribedID = 4 это в СП. поэтому теперь мне нужно выяснить, прошел ли @iSubscribedID i.e 4 в столбце twfNotification.SubscribedUsers.

если прямо, то мы можем сделать @iSubscribedID = twfNotification.SubscribedUsers, но twfNotification.SubscribedUsers хранит значения в столбцах, например 3,4,5.

Спасибо,

ответ

1

NORMALIZATION of TABLES это лучший способ сделать это.

Альтернативное решение:

SELECT a.NotificationMessage 
FROM twfNotification a 
WHERE ',' + a.SubscribedUsers + ',' LIKE '%,' + CONVERT(VARCHAR(10), @iSubscribedID) + ',%' 
+0

Моточки много .. это один идеально ... то, что я хочу. – user2813740

+0

@ user2813740 Добро пожаловать! –

Смежные вопросы