Sql 如何使用XPath获取单行上的值?

Sql 如何使用XPath获取单行上的值?,sql,sql-server,xpath,sql-server-2012,Sql,Sql Server,Xpath,Sql Server 2012,我有一个用户表、电子邮件表和一个关系电子邮件表。有些用户有多个电子邮件地址。 使用时 select U.Id,U.Name,E.Name from RelationalEmail AS RE INNER JOIN Email AS E ON E.Id = RE.EmailId INNER JOIN User AS U ON U.Id=RE.userId 当然,我得到的结果如下: UserId Name Email 1 Olcay abc@.com 1

我有一个用户表、电子邮件表和一个关系电子邮件表。有些用户有多个电子邮件地址。 使用时

select U.Id,U.Name,E.Name from RelationalEmail AS RE
INNER JOIN Email AS E ON E.Id = RE.EmailId
INNER JOIN User AS U ON U.Id=RE.userId
当然,我得到的结果如下:

UserId    Name     Email
1         Olcay    abc@.com
1         Olcay    acc@.com
2         John     jhn@.com
2         John     hnJ@.com
但我不想重复用户, 我试图得到如下结果:

UserId    Name     Email      
1         Olcay    abc@.com, acc@.com
2         John     jhn@.com, hnJ@.com
我的个人表格:

  UserId    Name      
    1         Olcay    
    2         John 
我的电子邮件表:

EmailId    Name
   7         abc@.com
   8         acc@.com
   9         jhn@.com
   10        hnJ@.com
Id   userId  EmailId
  1      1     7
  2      1     8
  3      2     9
  4      2     10
我的关系电子邮件表:

EmailId    Name
   7         abc@.com
   8         acc@.com
   9         jhn@.com
   10        hnJ@.com
Id   userId  EmailId
  1      1     7
  2      1     8
  3      2     9
  4      2     10
我的老师说我应该用XPath来做。但我不知道XPath。我搜索了一下,但我找不到我的问题的答案,或者我不明白


提前感谢

如果每个
姓名总是有两封
电子邮件
,那么这里有一种方法

select UserId, 
       Name, 
       Email = Min(Email),
       Email2 = Max(Email)
From yourtable 
Group by UserId, 
         Name

如果每个
name
可以有
N
email
,那么您需要
dynamic pivot

查看答案。分享更多详细信息。目前我看不出这个问题与XPath有什么关系