繁体   English   中英

在SQL中仅连接一列

[英]concatenate in sql only one column

booking No  Movie Name      Guest Name
---------------------------------------------
643042      Horrer Movie    MARLON HARRIS
643042      Horrer Movie    ALICE HARRIS

我想在SQL Server中显示以下记录

643042  Horrer Movie    ALICE HARRIS / MARLON HARRIS

尝试这样的事情:

select t.booking_no,
       t.Movie_name,
        stuff( (    select ' / ' + t2.Guest_Name
                    from table_name t2
                    where t2.booking_no = t.booking_no
                    FOR XML PATH(''), TYPE).value('.', 'nvarchar(max)')
                    ,1,3,'')  as Guest_Name

from table_name t
group by t.booking_no, t.Movie_name

如评论中所述,使用FOR XML PATH

    ;WITH T ([booking No] , [Movie Name] ,     [GuestName])
    AS
    (
    SELECT 643042   ,   'Horrer Movie',    'MARLON HARRIS'
    UNION ALL 
    SELECT 643042   ,   'Horrer Movie',    'ALICE HARRIS'
    )

    SELECT [booking No] , [Movie Name] ,
        GuestNames = LTRIM(RTRIM(STUFF(CAST((SELECT ' / '+ B.[GuestName]
        FROM T B
        WHERE a.[booking No] = b.[booking No]
        FOR XML PATH (''),TYPE) AS NVARCHAR(1000)),1,2,''))) 
    FROM T A
    GROUP BY [booking No] , [Movie Name]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM