我正在尝试在 SQL 表中配对记录,我的表看起来类似于:
UID DATE TIME MateID
---------------------------------------
1 2013-06-07 08:00 NULL
2 2013-06-07 10:00 NULL
3 2013-06-07 13:00 NULL
4 2013-06-07 17:00 NULL
5 2013-06-08 07:00 NULL
6 2013-06-08 11:00 NULL
7 2013-06-08 14:00 NULL
8 2013-06-08 18:00 NULL
我知道我可以用光标来做到这一点,但我想知道是否有一个基于集合的解决方案可以给我这个输出:
UID DATE TIME MateID
---------------------------------------
1 2013-06-07 08:00 2
2 2013-06-07 10:00 1
3 2013-06-07 13:00 4
4 2013-06-07 17:00 3
5 2013-06-08 07:00 6
6 2013-06-08 11:00 5
7 2013-06-08 14:00 8
8 2013-06-08 18:00 7
UID 字段不会是连续的,记录将按 DATE 和 TIME 排序。该表将包含大约 50k 条记录
编辑:对不起,我应该更清楚一点。MateID 是上一条/下一条记录的 UID。记录是根据 DATE 分组并按 TIME ASC 排序的,所以 DATE 的第一条记录和第二条记录是成对的,DATE 的第三条记录和第四条记录也是成对的。如果您需要我解释其他任何内容,请告诉我。每个日期总是有偶数条记录。
谢谢