Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

SSRS — odpowiednik Group_Concat przy użyciu wyrażenia?

spróbuj czegoś takiego (działa na SQL Server 2005 i nowszych):

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

WYJŚCIE:

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

(3 row(s) affected)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak utworzyć unikalny indeks na kolumnie NULL?

  2. Projekt bazy danych dla ustawień użytkownika

  3. Jak wybrać dane tabeli z innej bazy danych w SQL Server?

  4. Jak mogę wywołać procedurę składowaną SQL przy użyciu EntityFramework 7 i Asp.Net 5?

  5. Statystyka operacji we/wy pliku wydajności programu SQL Server