簡體   English   中英

在查詢中合並具有相同ID的行

[英]combine row with the same id in a query

這是我的查詢

select * 
from Owner_TABLE

結果:

RollNumber         People_ID   Owner
-------------------------------------------
444201000100100      12        Jame Bond
444201000100100      14        Sam Doris
444201000100200      16        Jane Doe
444201000100200      17        John Morris
444201000100300      18        Mandy Noor

我的目的是弄清楚如何將所有者與同一RollNumber合並為一行?

喜歡=>

RollNumber         Owner
----------------------------------------
444201000100100    James Bond, Sam Doris

這可能嗎?

舉例說明評論所指向的內容:

WITH ex as
(SELECT '444201000100100' as 'RollNumber', '12' as 'PeopleID', 'Jame Bond' as 'Owner'
UNION
SELECT '444201000100100', '14', 'Sam Doris'
UNION
SELECT '444201000100200', '16', 'Jane Doe'
UNION
SELECT '444201000100200', '17', 'John Morris'
UNION
SELECT '444201000100100', '18', 'Mandy Noor'
) 
SELECT RollNumber, STUFF((SELECT ', ' + e.Owner
                          FROM ex e
                          WHERE e.RollNumber = a.RollNumber
                          FOR XML PATH('')
                          ),1,2,'') as 'Owners'
FROM ex a
GROUP BY RollNumber

STUFF()刪除剩余的多余逗號。 FOR XML子句格式化FOR XML的結果集...。

嘗試這樣做以獲得更好的FOR XML PATH感覺:

SELECT Owner
FROM ex
FOR XML PATH('')

大家好,我只想分享完成腳本,並感謝發布建議的人們。

select p1.RollNumber,
(SELECT  FullName+', '  
FROM [dbo].[view_Owners_roll] p2 
WHERE
p1.RollNumber=p2.RollNumber 
for XML path(''),type).value('.','varchar(max)') 
as Name  from [dbo].[view_Owners_roll] p1 group by RollNumber

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM