2012-04-05 52 views
25

Làm cách nào để lặp qua danh sách được phân tách bằng dấu phẩy trong SQL? Tôi có một danh sách các ID và tôi cần chuyển các ID này cho một thủ tục lưu sẵn. Tôi KHÔNG THỂ thay đổi thủ tục được lưu trữ. Tôi cần phải tìm ra cách để thực hiện SP cho mỗi id. Hãy cho tôi một số ý tưởng, tôi có thể tiếp tục từ đó.Danh sách được phân tách bằng dấu phẩy trong SQL

Cảm ơn.

+2

Bạn có muốn gọi thủ tục lưu trữ cho mỗi ID riêng rẽ? Ngôn ngữ nào bạn đang làm việc bên ngoài SQL? – n8wrl

+0

Nếu bạn không thể thay đổi lưu trữ, tại sao không gọi nó nhiều lần? – Soader03

+1

Phiên bản SQL Server nào? – Yuck

Trả lời

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 

Hãy thử trên SE dữ liệu: Walk the string

+0

Thật nhanh chóng! cảm ơn bạn! – Virus

+1

+1 cho liên kết. Đã đánh dấu trang :) –

+1

+1 cho liên kết. Rất mát mẻ – brian

Các vấn đề liên quan