【问题标题】:Concatenation of Records in SQL Server [duplicate]SQL Server 中的记录串联[重复]
【发布时间】:2015-03-31 19:50:40
【问题描述】:

我需要根据以下条件从 SQL Server 中获取数据。

在数据库中有Ticketnumbercomments 列。对于一个Ticketnumber,有多个记录,对于同一个票号,有多个cmet存储在不同的记录中。每当我检索 ticketnumbercomments 列时,cmets 应该在单个记录中连接起来。

我们来看一个例子:

Ticketnumber       Comments        
-------------------------------
1002               Case raised    
1003               Case raised
1002               Processing,
1003               resolved
1002               resolved

预期的输出应该是:

Ticketnumber       Comments
-----------------------------------------------
1002               Case raise,processing,resolved,
1003               case raised,resolved  

所有的 cmets 都应该像上面那样连接成单个 ticketnumber

请提供查询。在此先感谢

【问题讨论】:

    标签: sql sql-server sql-server-2012 concatenation


    【解决方案1】:

    试试这个:

    Select X.Ticketnumber,
           Left(X.yourtable,Len(X.yourtable)-1) As "comments"
    From
        (
            Select distinct y.Ticketnumber, 
                (
                    Select x.comments  + ',' AS [text()]
                    From dbo.yourtable x
                    Where x.Ticketnumber= y.Ticketnumber
                    ORDER BY x.SubjectID
                    For XML PATH ('')
                ) [yourtable]
            From dbo.yourtable y
        ) [X]
    

    得到source thread的帮助

    【讨论】:

    • 感谢 Rahul,您的快速回复,如果我需要从中拉出多个列,那么我应该在哪里添加列名。
    • @shaikahamad:- If you want to pull multiple columns..我没明白!
    • 上面我们只获取了两列,如果还需要获取其他列,那怎么办?例如: Ticketnumber 、 cmets、 id 、 user 、 time 这些是我需要获取的列,但只有 Comments 我需要连接。
    • @shaikahamad:- 您只需在第一次选择时添加它,如下所示:Select X.Ticketnumber, Left(X.yourtable,Len(X.yourtable)-1) As 'comments',id,user,time....
    • @shaikahamad:- 希望这能回答你的问题!
    【解决方案2】:

    以前有一篇文章在这里有类似问题的答案:

    Concatenate many rows into a single text string?

    【讨论】:

    • 您也应该在此处发布答案(连同带有来源的链接),因为该链接可能不可用。
    • 这是一个stackoverflow链接。如果有的话,他应该将该问题标记为重复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    相关资源
    最近更新 更多