0

I'm having troubles with one of our tables, which i intend to use in viz tools. Maybe you could guide me on how to achieve below.

My table looks like this:

123 | ABC DEF
456 | GHI JKL MNO
789 | PRS

And I would like to split second column into rows and preserve value from first column:

123 | ABC
123 | DEF
456 | GHI
456 | JKL 
456 | MNO
789 | PRS

Could you tell me how to achieve that? Thanks in advance. Cheers!

saif3r
  • 117
  • 1
  • 10

1 Answers1

2

You could use XML node method to split the data :

SELECT ID, split.a.value('.', 'VARCHAR(MAX)') DATA
FROM
(
   SELECT ID, CAST('<A>'+REPLACE(DATA, ' ','</A><A>')+'</A>' AS XML) AS data from <table_name>
) a
CROSS APPLY data.nodes('/A') AS split(a);

Result :

ID  DATA
123 ABC
123 DEF
456 GHI
456 JKL
456 MNO
789 PRS
Yogesh Sharma
  • 49,870
  • 5
  • 26
  • 52