Jul
21
2009

SQL QT #2: TSQL CSV string to Table Function

So, not sure where I found this, but thought it would be helpful to post here. This is a very helpful little SQL table valued function to split out CSV strings into a table. I have used it in a few odd places and eliminated huge head aches!

ALTER FUNCTION [dbo].[CSVToTable]
(
       @psCSString VARCHAR(MAX)
)
RETURNS @otTemp TABLE(ID VARCHAR(25))
AS
BEGIN
 
       DECLARE @sTemp VARCHAR(10)
 
       WHILE LEN(@psCSString) > 0
              BEGIN
              
                     SET @sTemp = LEFT(@psCSString, ISNULL(NULLIF(CHARINDEX(',', @psCSString) - 1, -1), LEN(@psCSString)))
              
                     SET @psCSString = SUBSTRING(@psCSString,ISNULL(NULLIF(CHARINDEX(',', @psCSString), 0), LEN(@psCSString)) + 1, LEN(@psCSString))
              
                     INSERT INTO @otTemp VALUES (LTRIM(RTRIM(@sTemp)))
                     -- kill the nulls/ empty strings
                     DELETE FROM @otTemp WHERE Id IS NULL OR Id = ''
              
              END
RETURN
END

 

Enjoy!

RA

About me...

I am a software dev specializing in web based application lovin life in So Cal!

Month List