CREATE FUNCTION [dbo].[csfn_getlist](@I_cList varchar(8000))
RETURNS @Result TABLE (Element varchar(40)) AS
BEGIN
DECLARE @Element varchar(40), @Pos int
IF RIGHT(@I_cList,1)!=',' SET @I_cList=@I_cList+','
SET @Pos = CHARINDEX(',', @I_cList)
WHILE @Pos > 0
BEGIN
SET @Element=LEFT(@I_cList,@Pos-1)
INSERT INTO @Result (Element) VALUES (@Element)
SET @I_cList=RIGHT(@I_cList,LEN(@I_cList)-@Pos)
SET @Pos = CHARINDEX(',', @I_cList)
END
RETURN
END
Result
--------
declare @list varchar(max)
set @list= '124,45,76'
select * from [dbo].[csfn_getlist] (@list)
124
45
76