see example illustration belowdeclare @x xmlset @x='<XBRouteList><XBRoute><tid>8</tid><alias>20110606</alias><digitMatch>*620</digitMatch><extension>1</extension><policy>top_down</policy><rd><rdid>50924</rdid><con_Routing>yes</con_Routing></rd><rd><rdid>50917</rdid><con_Routing>yes</con_Routing></rd></XBRoute><XBRoute><tid>6</tid><alias>20110313</alias><digitMatch>*345</digitMatch><extension>23</extension><policy>top_down</policy><rd><rdid>436456</rdid><con_Routing>yes</con_Routing></rd><rd><rdid>3456235</rdid><con_Routing>yes</con_Routing></rd><rd><rdid>263435</rdid><con_Routing>yes</con_Routing></rd><rd><rdid>345642</rdid><con_Routing>yes</con_Routing></rd><rd><rdid>324646</rdid><con_Routing>yes</con_Routing></rd></XBRoute><XBRoute><tid>12</tid><alias>20101206</alias><digitMatch>*566</digitMatch><extension>1</extension><policy>top_down</policy><rd><rdid>23415</rdid><con_Routing>yes</con_Routing></rd><rd><rdid>3463677</rdid><con_Routing>yes</con_Routing></rd><rd><rdid>3476457</rdid><con_Routing>yes</con_Routing></rd><rd><rdid>547547</rdid><con_Routing>yes</con_Routing></rd><rd><rdid>12445</rdid><con_Routing>yes</con_Routing></rd><rd><rdid>346342</rdid><con_Routing>yes</con_Routing></rd><rd><rdid>34534656</rdid><con_Routing>yes</con_Routing></rd><rd><rdid>56865</rdid><con_Routing>yes</con_Routing></rd></XBRoute><XBRoute><tid>8</tid><alias>20110606</alias><digitMatch>*620</digitMatch><extension>1</extension><policy>top_down</policy><rd><rdid>50924</rdid><con_Routing>yes</con_Routing></rd><rd><rdid>50917</rdid><con_Routing>yes</con_Routing></rd></XBRoute></XBRouteList>';With CTEAS(SELECT ROW_NUMBER() OVER (PARTITION BY alias,tid ORDER BY rd) AS Rn,alias,tid,rdFROM(Select [XBRoute].value('alias[1]','varchar(100)') AS alias,[XBRoute].value('tid[1]','varchar(100)') AS tid,u.value('.','int') AS rdFrom @X.nodes('/XBRouteList/XBRoute') DMT([XBRoute])cross apply XBRoute.nodes('rd/rdid') t(u) )t)SELECT *FROM CTE cPIVOT(MAX(rd) FOR Rn in ([1],[2],[3],[4],[5],[6],[7],
))poutput---------------------------------------------------------alias tid 1 2 3 4 5 6 7 820101206 12 12445 23415 56865 346342 547547 3463677 3476457 3453465620110313 6 263435 324646 345642 436456 3456235 NULL NULL NULL20110606 8 50917 50917 50924 50924 NULL NULL NULL NULL------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/