我有两个表,都有相同的列。
第一个表包含原始源数据,第二个表包含对该数据的修订或在不存在原始数据的情况下插入的值。
这些表将用于一个视图中,如果数据有显示的修订-如果没有,则显示原始源数据。
通常情况下,使用左连接是可以的,但是由于性能原因,插入的修订版让我弄不清楚如何做到最好。
DECLARE @t1 TABLE (TimeStamp datetime,Value int)
DECLARE @t2 TABLE (TimeStamp datetime,Value int)
INSERT INTO @t1 (TimeStamp,Value) VALUES ('2000-01-01',10)
INSERT INTO @t1 (TimeStamp,Value) VALUES ('2000-01-02',15)
INSERT INTO @t1 (TimeStamp,Value) VALUES ('2000-01-04',5)
INSERT INTO @t1 (TimeStamp,Value) VALUES ('2000-01-05',18)
INSERT INTO @t1 (TimeStamp,Value) VALUES ('2000-01-06',12)
INSERT INTO @t2 (TimeStamp,Value) VALUES ('2000-01-03',12)
INSERT INTO @t2 (TimeStamp,Value) VALUES ('2000-01-05',20)
INSERT INTO @t2 (TimeStamp,Value) VALUES ('2000-01-06',15)
--SELECT STATEMENT HERE
我需要输出如下:
TimeStamp Value
----------------------- -----------
2000-01-01 00:00:00.000 10
2000-01-02 00:00:00.000 15
2000-01-03 00:00:00.000 12
2000-01-04 00:00:00.000 5
2000-01-05 00:00:00.000 20
2000-01-06 00:00:00.000 15
所以第3个Jan的值存在,第5个和第6个值取自@t2,而@t1的值不存在于输出中。
我使用的是SQLServer2005,这有什么区别吗