亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以用逗號將多個行分隔成一個列嗎?

我可以用逗號將多個行分隔成一個列嗎?

慕標5832272 2019-06-17 17:34:35
我可以用逗號將多個行分隔成一個列嗎?我試圖在我的SQLServer數據庫中合并這樣的內容:[TicketID], [Person]  T0001       Alice  T0001       Bob  T0002       Catherine  T0002       Doug  T0003       Elaine為此:[TicketID], [People]  T0001       Alice, Bob  T0002       Catherine, Doug  T0003       Elaine我需要在SQLServer和Oracle中都這樣做。我找到了這個功能GROUP_CONCAT對于MySQL來說,這正是我在這里所需要的,但是MySQL在這里不是一個選項。編輯:試驗臺:DECLARE @Tickets TABLE (     [TicketID] char(5) NOT NULL,     [Person] nvarchar(15) NOT NULL)INSERT INTO @Tickets VALUES     ('T0001', 'Alice'),     ('T0001', 'Bob'),     ('T0002', 'Catherine'),     ('T0002', 'Doug'),     ('T0003', 'Elaine')SELECT * FROM @Tickets
查看完整描述

3 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

下面是在SQLServer 2005+中工作的解決方案:

SELECT t.TicketID,
       STUFF(ISNULL((SELECT ', ' + x.Person                FROM @Tickets x              
        WHERE x.TicketID = t.TicketID            GROUP BY x.Person             
        FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), ''), 1, 2, '') [No Preceeding Comma],
       ISNULL((SELECT ', ' + x.Person                FROM @Tickets x              
        WHERE x.TicketID = t.TicketID            GROUP BY x.Person             
        FOR XML PATH (''), TYPE).value('.','VARCHAR(max)'), '') [Preceeding Comma If Not Empty]
  FROM @Tickets tGROUP BY t.TicketID

參考資料:


查看完整回答
反對 回復 2019-06-17
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

而且,MySQL版本,為了完整起見:

select
    TicketId,
    GROUP_CONCAT(Person ORDER BY Person SEPARATOR ', ') Peoplefrom
    tablegroup by
    TicketId


查看完整回答
反對 回復 2019-06-17
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

DECLARE @Tickets TABLE (
    [TicketID] char(5) NOT NULL,
    [Person] nvarchar(15) NOT NULL)INSERT INTO @Tickets VALUES
    ('T0001', 'Alice'),
    ('T0001', 'Bob'),
    ('T0002', 'Catherine'),
    ('T0002', 'Doug'),
    ('T0003', 'Elaine')SELECT * FROM @TicketsSelect [TicketID],STUFF((SELECT ',' + Person FROM @Tickets WHERE 
    (TicketID=Result.TicketID) FOR XML PATH ('')),1,1,'') AS BATCHNOLISTFrom @Tickets AS ResultGROUP BY TicketID


查看完整回答
反對 回復 2019-06-17
  • 3 回答
  • 0 關注
  • 775 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號