I am attempting to merge something like this in my 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 to do this in both SQL Server and Oracle.
I have found the function GROUP_CONCAT
for MySQL that does exactly what I need here, but MySQL is not an option here.
EDIT: Test bench:
DECLARE @Tickets TABLE (
[TicketID] char(5) NOT NULL,
[Person] nvarchar(15) NOT NULL
)
INSERT INTO @Tickets VALUES
('T0001', 'Alice'),
('T0001', 'Bob'),
('T0002', 'Catherine'),
('T0002', 'Doug'),
('T0003', 'Elaine')
SELECT * FROM @Tickets
Here is a solution that works in SQL Server 2005+:
Reference:
I have found a way to do this in Oracle, but I still need to do it in SQL Server.
From http://technology.amis.nl/blog/6118/oracle-rdbms-11gr2-listagg-new-aggregation-operator-for-creating-comma-delimited-strings (Thanks tanging) (ORACLE 11 and up)
From: http://halisway.blogspot.com/2006/08/oracle-groupconcat-updated-again.html
And, the MySQL version, for completeness:
one example
......... or try ..............
/* this works when I used this for my table and credit goes to my manager that ROCKS! */