Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SSRS - Group_Concat Еквивалент с помощта на израз?

опитайте нещо подобно (работи на SQL Server 2005 и по-нова версия):

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

ИЗХОД:

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. Копирайте таблицата в друга база данни на различен SQL Server

  2. Защо NULL =NULL се оценява на false в SQL сървър

  3. Връщане на редове, които съдържат небуквени и цифрови знаци в SQL Server

  4. T-SQL изрязване на   (и други небуквени и цифрови знаци)

  5. SQL Server Log Shipping &Disaster Recovery Installation and Configuration -2