Спасибо. Я нашел ответ с помощью PIVOT. В моем случае у меня есть более 10 столбцов и тысячи строк, поэтому присоединиться к ним будет нелегко. Кстати, это для анализа набора данных xml из отчета PayPalEngineResponse. Вот ответ, чтобы поделиться.
DECLARE @hDoc INT, @xmldata VARCHAR(MAX)
SELECT @xmldata =
'<?xml version="1.0" encoding="utf-8" ?>
<reportResponse>
<reportDataRow rowNum="1">
<columnData colNum="1">
<data>A</data>
</columnData>
<columnData colNum="2">
<data>B</data>
</columnData>
</reportDataRow>
<reportDataRow rowNum="2">
<columnData colNum="1">
<data>C</data>
</columnData>
<columnData colNum="2">
<data>D</data>
</columnData>
</reportDataRow>
<reportDataRow rowNum="3">
<columnData colNum="1">
<data>E</data>
</columnData>
<columnData colNum="2">
<data>F</data>
</columnData>
</reportDataRow>
</reportResponse>'
EXEC sp_xml_preparedocument @hDoc OUTPUT, @xmldata
SELECT [1] as row1, [2] as row2
FROM
(SELECT *
FROM OPENXML(@hDoc, '/reportResponse/reportDataRow/columnData',2)
WITH (data VARCHAR(50)
,rowNum INT '../@rowNum'
,colNum INT '@colNum')) P
PIVOT
(
MAX(data)
FOR colNum IN ([1],[2])
)AS pvt
EXEC sp_xml_removedocument @hDoc