Sql 合并表中的行并匹配空值

Sql 合并表中的行并匹配空值,sql,sql-server,sql-server-2005,sql-server-2000,Sql,Sql Server,Sql Server 2005,Sql Server 2000,哪个脚本将返回一个表,该表按ID合并下表中的行,并删除ID多次出现的空值。例如,ID3出现两次,ID217出现一次,在脚本运行之后,下面是它们的外观 脚本必须是老式的才能与SQL2000兼容。多谢各位 ID PreOpOrg PreOpTreatment PostOpOrg PostOpTreatment 3 RBA11 02 RBA11 06 217 NULL NULL

哪个脚本将返回一个表,该表按ID合并下表中的行,并删除ID多次出现的空值。例如,ID3出现两次,ID217出现一次,在脚本运行之后,下面是它们的外观 脚本必须是老式的才能与SQL2000兼容。多谢各位

ID  PreOpOrg    PreOpTreatment      PostOpOrg   PostOpTreatment
3   RBA11           02              RBA11       06
217 NULL            NULL            RN325       02
等等

ID      PreOpOrg    PreOpTreatment      PostOpOrg   PostOpTreatment
3       RBA11           02              NULL        NULL
3       NULL            NULL            RBA11       06
217     NULL            NULL            RN325       02
364     NULL            NULL            RBA11       02
369     NULL            NULL            RN325       02
481     GR123           05              NULL        NULL
834     RBA11           02              NULL        NULL
834     NULL            NULL            RBA11       04
1066    NULL            NULL            RBA11       05
2123    NULL            NULL            RBA11       05
2246    NULL            NULL            RBA11       02
2246    RBA11           02              NULL        NULL
2512    RBA11           04              NULL        NULL
2512    NULL            NULL            RBA11       06
2694    NULL            NULL            RN325       05
2892    NULL            NULL            RBA11       06
2892    RBA11           05              NULL        NULL
3311    RBA11           05              NULL        NULL
3311    NULL            NULL            RBA11       06
3344    RBA11           02              NULL        NULL
3362    RBA11           02              NULL        NULL
3770    RBA11           05              NULL        NULL

您可以将其作为聚合执行:

select ID, max(PreOpOrg) as PreOpOrg, max(PreOpTreatment) as PreOpTreatment,
       max(PostOpOrg) as PostOpOrg, max(PostOpTreatment) as PostOpTreatment
from table t
group by id;

这适用于您提供的数据,因为只填充了一个字段。如果情况属实,则其中一列中的信息不会“丢失”。

谢谢。如果每个字段都填充了不止一次呢?@Gordon Linoff,谢谢。对于一个ID,永远不应该有一列被多次填充,这样就可以工作了!