Sql server 按列将记录分组

Sql server 按列将记录分组,sql-server,Sql Server,这是具有相同id的不同技术的表 id technology ------------------ 1 MCA 1 BSC SCIENCE 2 BTECH 3 BTECH 3 MTECH 如何将输出组组合在一起,如下所示: id technology -------------------------- 1 MCA, BSC SCIENCE

这是具有相同id的不同技术的表

id   technology       
------------------
1    MCA           
1    BSC SCIENCE   
2    BTECH         
3    BTECH         
3    MTECH  
如何将输出组组合在一起,如下所示:

id   technology       
--------------------------
1    MCA, BSC SCIENCE               
2    BTECH         
3    BTECH, MTECH   

对XML PAT使用
STUFF
函数&
,如下所示:-

 STUFF((SELECT DISTINCT ', ' + technology
           FROM #tempTable b 
           WHERE b.id = a.id 
          FOR XML PATH('')), 1, 2, '')
演示:-

create table #tempTable 
(
id int,
technology nvarchar(max)
)

insert into #tempTable values    
 (1 ,'MCA')
,(1 ,'BSC SCIENCE')
,(2 ,'BTECH')
,(3 ,'BTECH')
,(3 ,'MTECH')


SELECT id, displayname = 
    STUFF((SELECT DISTINCT ', ' + technology
           FROM #tempTable b 
           WHERE b.id = a.id 
          FOR XML PATH('')), 1, 2, '')
FROM #tempTable a
GROUP BY id
1   BSC SCIENCE, MCA
2   BTECH
3   BTECH, MTECH
结果:-

create table #tempTable 
(
id int,
technology nvarchar(max)
)

insert into #tempTable values    
 (1 ,'MCA')
,(1 ,'BSC SCIENCE')
,(2 ,'BTECH')
,(3 ,'BTECH')
,(3 ,'MTECH')


SELECT id, displayname = 
    STUFF((SELECT DISTINCT ', ' + technology
           FROM #tempTable b 
           WHERE b.id = a.id 
          FOR XML PATH('')), 1, 2, '')
FROM #tempTable a
GROUP BY id
1   BSC SCIENCE, MCA
2   BTECH
3   BTECH, MTECH

对XML PAT使用
STUFF
函数&
,如下所示:-

 STUFF((SELECT DISTINCT ', ' + technology
           FROM #tempTable b 
           WHERE b.id = a.id 
          FOR XML PATH('')), 1, 2, '')
演示:-

create table #tempTable 
(
id int,
technology nvarchar(max)
)

insert into #tempTable values    
 (1 ,'MCA')
,(1 ,'BSC SCIENCE')
,(2 ,'BTECH')
,(3 ,'BTECH')
,(3 ,'MTECH')


SELECT id, displayname = 
    STUFF((SELECT DISTINCT ', ' + technology
           FROM #tempTable b 
           WHERE b.id = a.id 
          FOR XML PATH('')), 1, 2, '')
FROM #tempTable a
GROUP BY id
1   BSC SCIENCE, MCA
2   BTECH
3   BTECH, MTECH
结果:-

create table #tempTable 
(
id int,
technology nvarchar(max)
)

insert into #tempTable values    
 (1 ,'MCA')
,(1 ,'BSC SCIENCE')
,(2 ,'BTECH')
,(3 ,'BTECH')
,(3 ,'MTECH')


SELECT id, displayname = 
    STUFF((SELECT DISTINCT ', ' + technology
           FROM #tempTable b 
           WHERE b.id = a.id 
          FOR XML PATH('')), 1, 2, '')
FROM #tempTable a
GROUP BY id
1   BSC SCIENCE, MCA
2   BTECH
3   BTECH, MTECH
输出

ID  (No column name)
1   MCA,BSC SCIENCE
2   BTECH
3   BTECH,MTECH
输出

ID  (No column name)
1   MCA,BSC SCIENCE
2   BTECH
3   BTECH,MTECH

你尝试过什么,你的研究结果是什么,你不能解决什么具体问题?请阅读并在谷歌上搜索
内容
用于XML路径
分隔字符串
。有100个答案,都使用相同的逻辑。您使用的是哪个SQL server版本?您尝试了什么,您的研究结果是什么,您无法解决的具体问题是什么?请阅读并在谷歌上搜索
内容
用于XML路径
分隔字符串
。有100个答案,都使用相同的逻辑。您使用的是哪个SQL server版本?