Author |
Topic |
calvinkwoo3000
Yak Posting Veteran
98 Posts |
Posted - 2014-08-07 : 02:27:25
|
i want to concat data from few column to 2 column.My database as below:id name email1 name1 name1@email.com1 name2 name2@email.com2 name21 name21@email.com2 name22 name22@email.comOutput:id name email1 name1,name2 name1@email.com,name2@email.com2 name21,name22 name21@email.com,name22@email.comdo anyone have any advise? |
|
SwePeso
Patron Saint of Lost Yaks
30421 Posts |
Posted - 2014-08-07 : 02:39:09
|
[code]DECLARE @Sample TABLE ( id INT NOT NULL, name VARCHAR(100) NOT NULL, email VARCHAR(100) NOT NULL );INSERT @Sample ( id, name, email )VALUES (1, 'name1', 'name1@email.com'), (1, 'name2', 'name2@email.com'), (2, 'name21', 'name21@email.com'), (2, 'name22', 'name22@email.com');-- SwePesoSELECT i.id, STUFF(n.data.value('.', 'VARCHAR(MAX)'), 1, 1, '') AS name, STUFF(e.data.value('.', 'VARCHAR(MAX)'), 1, 1, '') AS emailFROM ( SELECT id FROM @Sample GROUP BY id ) AS iCROSS APPLY ( SELECT ',' + x.name FROM @Sample AS x WHERE x.id =i.id ORDER BY x.name FOR XML PATH(''), TYPE ) AS n(data)CROSS APPLY ( SELECT ',' + x.email FROM @Sample AS x WHERE x.id =i.id ORDER BY x.name FOR XML PATH(''), TYPE ) AS e(data);[/code] Microsoft SQL Server MVP, MCT, MCSE, MCSA, MCP, MCITP, MCTS, MCDBA |
 |
|
|
|
|