我有两张桌子:
旧表(OT)
Record_id | Name | Sequence_num
------------------------------------
78 | Austin | 0
78 | Mike | 1
78 | Joe | 2
和
新表 (NT)
Record_id | Name | Sequence_num
------------------------------------
78 | Mike | 0
78 | Joe | 1
78 | Austin | 2
78 | Fred | 3
78 | Ben | 4
我正在寻找的是输出表,如下所示:
Record_id | OT_Name | NT_Name | Sequence_num
---------------------------------------------------
78 | Austin | Mike | 0
78 | Mike | Joe | 1
78 | Joe | Austin | 2
78 | NULL | Fred | 3
78 | NULL | Ben | 4
问题是我不确定每个表中有多少行。OT 可以有 10 行,NT 可以有 3 行,或者 NT 可以多于 OT,或者它们可以有相同的数量。在对面表中没有匹配 Sequence_num 的任何行都需要在相应列中具有 NULL 值。在这种情况下,如果没有为每个表创建一个函数,那么一个 select 语句怎么能做到这一点呢?我无法为我的一生想出一个解决方案。
编辑:
使用 MS Sql 服务器 2008
管理工作室 10.0.1600.22