首页 > 解决方案 > 如何将多行合并为一行

问题描述

好的,这有点难以解释。我们有一个审计表,它记录了表中每个被更改的字段。假设我们有一个如下所示的表:

RecordID    Forename    Surname    DOB
1           Bob         Smith      10/01/2000
2           Joe         Bloggs     11/01/2000
3           Mike        Jones      12/01/2000

现在,假设我删除了这三行。审计表将保留这些删除的记录,它这样做是这样的:

PrimaryKeyValue    FieldName    OldValue    NewValue
<RecordID=1>       Forename     Bob         NULL
<RecordID=1>       Surname      Smith       NULL
<RecordID=1>       DOB          10/01/2000  NULL
<RecordID=2>       Forename     Joe         NULL
<RecordID=2>       Surname      Bloggs      NULL
<RecordID=2>       DOB          11/01/2000  NULL
<RecordID=3>       Forename     Mike        NULL
<RecordID=3>       Surname      Jones       NULL
<RecordID=3>       DOB          12/01/2000  NULL

所以,我的问题是,有没有办法将审计表中的这些记录放回第一个表中。就我而言,一些不应该被删除的记录被删除了,而我只有这些审计记录。而且它们比我这里的示例要多得多,因此手动完成所有操作将花费很长时间。我希望这里有人知道一些使用底部表格进行多次插入的巧妙方法,以便它们再次出现在第一个表格中,如图所示。

有人有想法么?

标签: sqlsql-servertsql

解决方案


推荐阅读