SPLIT UDF,
dbo.fnSplit('1,2,3,4,5,6,7,8,9', ',')
, IN
* CROSS APPLY dbo.FnSplit('1,2,3,4,5,6,7,8,9', ',')
ManagerID =
, split .
ALTER FUNCTION dbo.Split(@sep char (1), @s varchar (512))
RETURNS
( Pieces (pn, start, stop) AS ( SELECT 1, 1, CHARINDEX (@sep, @s) SELECT pn + 1, stop + 1, CHARINDEX (@sep, @s, stop + 1) WHERE stop > 0 ) SELECT pn, SUBSTRING (@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS s )
GO
CREATE FUNCTION dbo.Split (@RowData nvarchar (2000), @SplitOn nvarchar (5))
RETURNS table @RtnValue (Id int identity (1,1), Data nvarchar (100)) AS
START Declare @Cnt int Set @Cnt = 1
While (Charindex(@SplitOn,@RowData)>0)
Begin
Insert Into @RtnValue (data)
Select
Data = ltrim(rtrim(Substring(@RowData,1,Charindex(@SplitOn,@RowData)-1)))
Set @RowData = Substring(@RowData,Charindex(@SplitOn,@RowData)+1,len(@RowData))
Set @Cnt = @Cnt + 1
End
Insert Into @RtnValue (data)
Select Data = ltrim(rtrim(@RowData))
Return
END
etc. http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=50648