Click here to Skip to main content
Click here to Skip to main content

Adding items in comma-separated string into separate rows in SQL Server

By , 2 May 2013
 

In this post, I’ll show how to insert a items in a comma-separated string into separate rows in a table. Consider for example we have a comma-separated string such as “amogh, anish, anvesh, uday”. After inserting into the table, the output should be like: 

 

I have written a stored procedure which will take the comma-separated string as input and insert a new row into the table for each item in the string. Here I'm assuming that the identity property of the table is set to true and increments by '1' for every insert action performed on the table. 

The Stored procedure is as follows: 

CREATE PROCEDURE AddCommaSeparatedUsersToTable
(
      @UserNames NVARCHAR(MAX)
)
AS
BEGIN
DECLARE @DELIMITER NCHAR(1)   --delimiter used to separate the usernames
DECLARE @tmpUserNames NVARCHAR(MAX)
SET @tmpUserNames = @UserNames
SET @DELIMITER = ‘,’       --Delimiter is a comma
DECLARE @commaIndex INT    
DECLARE @singleUserName NVARCHAR(MAX)
--singleUserName is the variable which holds each item in the comma-separated string

SELECT @commaIndex = 1    
IF LEN(@tmpUserNames)<1 OR @tmpUserNames IS NULL  RETURN    
WHILE @commaIndex!= 0    
BEGIN    
      SET @commaIndex= CHARINDEX(@DELIMITER,@tmpUserNames)    
      IF @commaIndex!=0    
            SET @singleUserName= LEFT(@tmpUserNames,@commaIndex– 1)    
      ELSE    
            SET @singleUserName = @tmpUserNames    
      IF(LEN(@singleUserName)>0)
      BEGIN                        
            INSERT INTO SampleUserTable
            (
                  UserName
            )
            VALUES
            (
                  @singleUserName
            )
      END
      SET @tmpUserNames = RIGHT(@tmpUserNames,LEN(@tmpUserNames) – @commaIndex)    
      IF LEN(@tmpUserNames) = 0 BREAK    
END
END  

This procedure will insert each item in the comma-separated string (UserNames, given as input parameter to the procedure) into the table “SampleUserTable” in separate rows.

Hope this helps!!  

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

About the Author

Amogh Natu
Software Developer
India India
Member
No Biography provided

Comments and Discussions

Comment 2 messages have been posted for this article Visit http://www.codeproject.com/Articles/576366/Adding-items-in-comma-separated to post and view comments on this article, or click here to get a print view with messages.

Permalink | Advertise | Privacy | Mobile
Web04 | 2.6.130513.1 | Last Updated 2 May 2013
Article Copyright 2013 by Amogh Natu
Everything else Copyright © CodeProject, 1999-2013
Terms of Use