DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone >

SQL Fn_split

Snippets Manager user avatar by
Snippets Manager
·
Jan. 12, 07 · · Code Snippet
Like (0)
Save
Tweet
1.58K Views

Join the DZone community and get the full member experience.

Join For Free
CREATE function dbo.fn_Split(
 @String nvarchar (4000),
 @Delimiter nvarchar (10)
 )
returns @ValueTable table ([Value] nvarchar(4000))
begin
 declare @NextString nvarchar(4000)
 declare @Pos int
 declare @NextPos int
 declare @CommaCheck nvarchar(1)
 
 if @String <> '' 
 begin
	 --Initialize
	 set @NextString = ''
	 set @CommaCheck = right(@String,1) 
 
	 --Check for trailing Comma, if not exists, INSERT
	 --if (@CommaCheck <> @Delimiter )
	 set @String = @String + @Delimiter
 
	 --Get position of first Comma
	 set @Pos = charindex(@Delimiter,@String)
	 set @NextPos = 1
 
	 --Loop while there is still a comma in the String of levels
	 while (@pos <>  0)  
	 begin
	 	set @NextString = substring(@String,1,@Pos - 1)
 
	 	insert into @ValueTable ( [Value]) Values (@NextString)
 
	  	set @String = substring(@String,@pos +1,len(@String))
  
	  	set @NextPos = @Pos
	  	set @pos  = charindex(@Delimiter,@String)
	 end
 end
 
 return
end
sql

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Evolving Domain-Specific Languages
  • How to Minimize Software Development Cost
  • A Smarter Redis
  • After COVID, Developers Really Are the New Kingmakers

Comments

Partner Resources

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo