(SQL SERVER 2008)我在多个表中添加了时间戳记录以加入主/基表。时间点有时等于基表,但有时不等于。
创建表的代码:
create table base (time float);
create table table2 (time float, val2 char(1));
create table table3 (time float, val3 int);
insert into base values (1),(2),(3),(4),(5),(6),(7),(8),(9),(10);
insert into table2 values (1, 'a'),(5, 'z'),(6, 'm'),(9, 'b');
insert into table3 values (1.5, 1),(5.3, 10),(5.5, 0),(8.1, 4);
结果集应该是基表中的每条记录和其他表中的“最新”值。以前,这些表在 Excel 中使用设置为 TRUE 的 Vlookup “连接”,这会从已排序的表中获取最接近的匹配项。
最终结果应如下所示:
time | val2 | val3
1 | a | NULL
2 | a | 1
3 | a | 1
4 | a | 1
5 | z | 1
6 | m | 0
7 | m | 0
8 | m | 0
9 | b | 4
10 | b | 4
如何使用 SQL 语句复制它?
因为只有大约 100 条记录在玩,所以我会在这里考虑可读性而不是效率。