SQL split

Частенько бывает, что нужно в функцию или процедуру отправить ID элементов, над которыми нужно будет производить некоторые действия, но изначально не ясно, сколько таких элементов будет. Есть такой выход: в качестве параметра ID'шники отправляем в виде строки типа '1,2,3,4,9..', а в процедуре обрабатываем:

DECLARE @IDS VARCHAR(250)
SET @IDS='1,2,5,7,9'

DECLARE @str VARCHAR(250)
SET  @str = 'select ' + REPLACE(@IDS, ',', ' union all select ')

DECLARE @tb TABLE (ID INT )
INSERT  INTO  @tb EXEC(@str)

SELECT * FROM @tb


Лекго и просто (Спасибо Антону)

Добавить комментарий

Loading