Sql server 按列将记录分组
这是具有相同id的不同技术的表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 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版本?