sql >> Database teknologi >  >> RDS >> Sqlserver

SSRS - Group_Concat ækvivalent ved hjælp af et udtryk?

prøv noget som dette (virker på SQL Server 2005 og nyere):

set nocount on;
declare @t table (id int, name varchar(20), x char(1))
insert into @t (id, name, x)
select 1,'test1', 'a' union
select 1,'test1', 'b' union
select 1,'test1', 'c' union
select 2,'test2', 'a' union
select 2,'test2', 'c' union
select 3,'test3', 'b' union
select 3,'test3', 'c' 
SET NOCOUNT OFF

SELECT p1.id, p1.name,
          stuff(
                   (SELECT
                        ', ' + x
                        FROM @t p2
                        WHERE p2.id=p1.id
                        ORDER BY name, x
                        FOR XML PATH('') 
                   )
                   ,1,2, ''
               ) AS p3
      FROM @t p1
     GROUP BY 
        id, name

OUTPUT:

id          name                 p3
----------- -------------------- ---------
1           test1                a, b, c
2           test2                a, c
3           test3                b, c

(3 row(s) affected)



  1. Sådan får du måneden fra en dato i MySQL

  2. Fjern DEFINER-klausulen fra MySQL Dumps

  3. Hvordan installerer jeg kun klientværktøjerne til PostgreSQL på Windows?

  4. Hvad du bør vide om MED NOCHECK, når du aktiverer en CHECK-begrænsning i SQL Server