sql - Can I Comma Delimit Multiple Rows Into One Column? -


this question has answer here:

i attempting merge in sql server database:

[ticketid], [person]  t0001       alice  t0001       bob  t0002       catherine  t0002       doug  t0003       elaine

into this:

[ticketid], [people]  t0001       alice, bob  t0002       catherine, doug  t0003       elaine

i need in both sql server , oracle.

i have found function group_concat mysql need here, mysql not option here.

edit: test bench:

declare @tickets table (     [ticketid] char(5) not null,     [person] nvarchar(15) not null )  insert @tickets values     ('t0001', 'alice'),     ('t0001', 'bob'),     ('t0002', 'catherine'),     ('t0002', 'doug'),     ('t0003', 'elaine')  select * @tickets 

here solution works in sql server 2005+:

select t.ticketid,        stuff(isnull((select ', ' + x.person                 @tickets x                x.ticketid = t.ticketid             group x.person              xml path (''), type).value('.','varchar(max)'), ''), 1, 2, '') [no preceeding comma],        isnull((select ', ' + x.person                 @tickets x                x.ticketid = t.ticketid             group x.person              xml path (''), type).value('.','varchar(max)'), '') [preceeding comma if not empty]   @tickets t group t.ticketid 

reference:


Comments

Popular posts from this blog

c++ - Convert big endian to little endian when reading from a binary file -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -

unicode - Are email addresses allowed to contain non-alphanumeric characters? -