2012-04-05 2 views
25

Как перебрать через запятую список в SQL? У меня есть список идентификаторов, и мне нужно передать эти идентификаторы в хранимую процедуру. Я НЕ МОЖЕТ изменить хранимую процедуру. Мне нужно выяснить, как выполнить SP для каждого идентификатора. Дайте мне некоторые идеи, я могу продолжать оттуда.Список разделенных запятой в SQL

Спасибо.

+2

Вы хотите вызвать хранимую процедуру для каждого ID отдельно? На каком языке вы работаете за пределами SQL? – n8wrl

+0

Если вы не можете изменить сохраненный, почему бы не назвать его несколько раз? – Soader03

+1

Какая версия SQL Server? – Yuck

ответ

62
declare @S varchar(20) 
set @S = '1,2,3,4,5' 

while len(@S) > 0 
begin 
    --print left(@S, charindex(',', @S+',')-1) 
    exec YourSP left(@S, charindex(',', @S+',')-1) 
    set @S = stuff(@S, 1, charindex(',', @S+','), '') 
end 

Try на SE данных: Walk the string

+0

Это быстро! Спасибо! – Virus

+1

+1 для ссылки. Закладка: –

+1

+1 для ссылки. Очень круто – brian

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