[英]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.