Convert a delimited string to table

What?
This is a quick note to show you how to convert a given comma delimited string into a database table:
copyraw
Given:   "Title,Forenames,Surname"

Return:
  ID     Value
  ------ ----------------
  1      Title
  2      Forenames
  3      Surname

Note the below example omits the ID column and just leaves VALUE.
  1.  Given:   "Title,Forenames,Surname" 
  2.   
  3.  Return: 
  4.    ID     Value 
  5.    ------ ---------------- 
  6.    1      Title 
  7.    2      Forenames 
  8.    3      Surname 
  9.   
  10.  Note the below example omits the ID column and just leaves VALUE. 

Why?
Do we need a reason?


How?
For SQL Server 2005 or later, using T-SQL:
copyraw
DECLARE @myStringToParse VARCHAR(max), @myXML XML;
SET @myStringToParse = 'Title,Forenames,Surname';
SELECT @myXml = CONVERT(xml,'<root><s>' + REPLACE(@myStringToParse,',','</s><s>') + '</s></root>');
SELECT [Value] = T.c.value('.','varchar(20)') FROM @myXml.nodes('/root/s') T(c);
  1.  DECLARE @myStringToParse VARCHAR(max), @myXML XML; 
  2.  SET @myStringToParse = 'Title,Forenames,Surname'
  3.  SELECT @myXml = CONVERT(xml,'<root><s>' + REPLACE(@myStringToParse,',','</s><s>') + '</s></root>')
  4.  SELECT [Value] = T.c.value('.','varchar(20)') FROM @myXml.nodes('/root/s') T(c)
Category: Databases :: Article: 440

Add comment

Your rating:

Submit

Credit where Credit is Due:


Feel free to copy, redistribute and share this information. All that we ask is that you attribute credit and possibly even a link back to this website as it really helps in our search engine rankings.

Disclaimer: Please note that the information provided on this website is intended for informational purposes only and does not represent a warranty. The opinions expressed are those of the author only. We recommend testing any solutions in a development environment before implementing them in production. The articles are based on our good faith efforts and were current at the time of writing, reflecting our practical experience in a commercial setting.

Thank you for visiting and, as always, we hope this website was of some use to you!

Kind Regards,

Joel Lipman
www.joellipman.com

Accreditation

Badge - Zoho Creator Certified Developer Associate
Badge - Zoho Deluge Certified Developer
Badge - Certified Zoho CRM Developer

Donate & Support

If you like my content, and would like to support this sharing site, feel free to donate using a method below:

Paypal:
Donate to Joel Lipman via PayPal

Bitcoin:
Donate to Joel Lipman with Bitcoin bc1qf6elrdxc968h0k673l2djc9wrpazhqtxw8qqp4

Ethereum:
Donate to Joel Lipman with Ethereum 0xb038962F3809b425D661EF5D22294Cf45E02FebF

Please publish modules in offcanvas position.