2012-04-05 1 views
25

SQL'de virgülle ayrılmış liste nasıl kullanılır? ID'lerin bir listesi var ve bu ID'leri saklı bir prosedüre geçirmem gerekiyor. Saklı yordamı değiştiremiyorum. Her bir kimlik için SP'yi nasıl yürüteceğimi anlamaya ihtiyacım var. Bana biraz fikir ver, oradan devam edebilirim.SQL'de virgülle ayrılmış liste

Teşekkürler. SE Veri üzerinde

+2

sen ayrı HER kimliği için yordamını aramak istiyor musunuz? SQL dışında hangi dil çalışıyorsunuz? – n8wrl

+0

Saklananı değiştiremezseniz, neden birden çok kez çağırmayın? – Soader03

+1

SQL Server'ın hangi sürümü? – Yuck

cevap

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 

Dene: Walk the string

+0

Bu çok hızlı! teşekkür ederim! Bağlantı için – Virus

+1

+1. Link için Bookmarked :) –

+1

+1. Çok serin – brian