![](/img/trans.png)
[英]SQL Query to combine multiple rows into one based on ID while keeping other value in the same row?
[英]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.