Thursday, November 17, 2011

Convert Comma Separated string to table having a varchar column.


CREATE FUNCTION [dbo].[ToStringTable]
(
@ItemList varchar(500)
)
RETURNS
@ParsedList table
(
ItemId VARCHAR(100)
)
AS
BEGIN
DECLARE @ItemID VARCHAR(100), @Pos int

SET @ItemList = LTRIM(RTRIM(@ItemList))+ ','
SET @Pos = CHARINDEX(',', @ItemList, 1)

IF REPLACE(@ItemList, ',', '') <> ''
BEGIN
WHILE @Pos > 0
BEGIN
SET @ItemID = LTRIM(RTRIM(LEFT(@ItemList, @Pos - 1)))

IF @ItemID <> ''
BEGIN
INSERT INTO @ParsedList (ItemId)
VALUES (@ItemID)
END

SET @ItemList = RIGHT(@ItemList, LEN(@ItemList) - @Pos)
SET @Pos = CHARINDEX(',', @ItemList, 1)
END
END
RETURN
END

No comments: