【发布时间】:2013-11-18 20:52:26
【问题描述】:
我想在一列中连接多行。我在互联网上找到了很多例子,但对我不起作用。我做错了什么?
SELECT UserID,
STUFF((SELECT '; ' + Email.Email From Email where UserEmail.EmailID = Email.ID for xml path('')),1,1, '') AS Emails
From UserEmail
where UserID = 1
我仍然有这样的信息
UserID Email
1 abc@yahoo.com
1 cde@gmail.com
--编辑--
好的,我做了这个更改,但仍然有 2 行。如果我应用 distinct 这将解决我的问题,但为什么我必须使用 distinct。查询必须自行分组。
SELECT UserID,
STUFF(( SELECT '; ' + ea.Email
From Email ea inner join UserMail ue_inner on ue_inner.EmailID = ea.ID
where
ue_inner.UserID = ue.UserID
for xml path('')), 1, 1, '')
AS Email
From UserEmail ue
where UserID = 1
结果
UserID Email
1 abc@yahoo.com; cde@gmail.com
1 abc@yahoo.com; cde@gmail.com
【问题讨论】:
标签: sql-server xml path concatenation sqlxml