April 2010 Tip of the Month

By SQLRx Admin | Helpful Scripts

May 28

SQL Server Development:  Take apart delimited strings with ease with a function that is commonly found in Visual Basic.  Pass a delimited string into the fnSplit function and it will output the string as a table that can be queried.

The function is called by this statement:

SELECT * FROM dbo.fnSplit(‘SQLRx,Solves,Performance,Problems’,’,’)

It will output a table…give it a try!

CREATE FUNCTION [dbo].[fnSplit] (@String VARCHAR(8000), @Delimiter CHAR(1))

RETURNS @temptable TABLE (items VARCHAR(8000))

AS

BEGIN

DECLARE @idx INT

DECLARE @slice VARCHAR(8000)

SELECT @idx = 1

IF LEN(@String)<1 OR @String IS NULL  RETURN

WHILE @idx!= 0

BEGIN

SET @idx = CHARINDEX(@Delimiter,@String)

IF @idx!=0

SET @slice = LEFT(@String,@idx – 1)

ELSE

SET @slice = @String

IF(LEN(@slice)>0)

INSERT INTO @temptable(items) VALUES(@slice)

SET @String = RIGHT(@String,LEN(@String) – @idx)

IF LEN(@String) = 0 BREAK

END

RETURN

END

GO

About the Author

>
The owner of this website has made a commitment to accessibility and inclusion, please report any problems that you encounter using the contact form on this website. This site uses the WP ADA Compliance Check plugin to enhance accessibility.