I have a table input like
column1 | column2
--------+--------
1,2,3 | A,B,C
4,5,6 | D,E,F
I need output like this:
column1 |column2
--------+-------
1 | A
2 | B
3 | C
4 | D
5 | E
6 | F
I have a table input like
column1 | column2
--------+--------
1,2,3 | A,B,C
4,5,6 | D,E,F
I need output like this:
column1 |column2
--------+-------
1 | A
2 | B
3 | C
4 | D
5 | E
6 | F
You question is quite unclear, but my magic crystal ball tells me, that you might be looking for something like this:
DECLARE @tbl TABLE(ID INT IDENTITY,column1 VARCHAR(100),column2 VARCHAR(100))
INSERT INTO @tbl VALUES
('1,2,3','A,B,C')
,('4,5,6','D,E,F');
WITH Casted AS
(
SELECT ID
,CAST('<x>' + REPLACE(column1,',','</x><x>')+'</x>' AS XML) AS col1XML
,CAST('<x>' + REPLACE(column2,',','</x><x>')+'</x>' AS XML) AS col2XML
FROM @tbl
)
SELECT ID,col1XML.value('/x[1]','int') AS Column1,col2XML.value('/x[1]','nvarchar(max)') AS Column2
FROM Casted
UNION ALL
SELECT ID,col1XML.value('/x[2]','int') AS Column1,col2XML.value('/x[2]','nvarchar(max)') AS Column2
FROM Casted
UNION ALL
SELECT ID,col1XML.value('/x[3]','int') AS Column1,col2XML.value('/x[3]','nvarchar(max)') AS Column2
FROM Casted
ORDER BY ID,Column1
The result
ID c1 c2
1 1 A
1 2 B
1 3 C
2 4 D
2 5 E
2 6 F