Sql 将多行连接到一行中(但不是作为字符串)

Sql 将多行连接到一行中(但不是作为字符串),sql,sql-server,Sql,Sql Server,我有一张这样的桌子: iD PhoneNumber EmailAddress 1 06543635463 NULL 1 NULL Me@Me.com 2 NULL You@You.net 2 0298754355 NULL 3 0543280545 NULL id PhoneNumber EmailAddress 1 065

我有一张这样的桌子:

 iD     PhoneNumber    EmailAddress
 1       06543635463    NULL
 1       NULL           Me@Me.com
 2       NULL           You@You.net
 2       0298754355     NULL
 3       0543280545     NULL
id    PhoneNumber      EmailAddress
1     06543635463      Me@Me.com
2     0298754355       You@You.net
3     0543280545       NULL
我正在尝试连接这些行,使它们看起来像这样:

 iD     PhoneNumber    EmailAddress
 1       06543635463    NULL
 1       NULL           Me@Me.com
 2       NULL           You@You.net
 2       0298754355     NULL
 3       0543280545     NULL
id    PhoneNumber      EmailAddress
1     06543635463      Me@Me.com
2     0298754355       You@You.net
3     0543280545       NULL
任何帮助都将不胜感激。非常感谢。

这不是串联,而是简单的聚合。听起来您可以使用
MIN
MAX

SELECT id,
       MAX(PhoneNumber) PhoneNumber,
       MAX(EmailAddress) EmailAddress
FROM dbo.YourTable
GROUP BY id;

那么您想要哪种数据类型呢?那将是重复数据消除,而不是串联。我猜您插入了记录,而不是更新相同的
ID