比如我有很多表都[VV1]
和[VV2]
有:如何通過合併時間列將兩個列表合併爲一個列表?
[TimeStamp]
,[V1]
2013-12-12 07:00:00.000 3628460,75
2013-12-12 09:00:00.000 3628460,75
2013-12-12 10:00:00.000 3628460,75
2013-12-12 11:00:00.000 3628460,75
2013-12-12 06:00:00.000 3628460,75
[TimeStamp]
,[V2]
2013-12-12 07:00:00.000 3628460,75
2013-12-12 09:00:00.000 3628460,75
2013-12-12 10:00:00.000 3628460,75
2013-12-12 06:00:00.000 3628460,75
,我想要得到的東西一樣:
2013-12-12 07:00:00.000 3628460,75 3628460,75
2013-12-12 08:00:00.000 NULL 3628460,75
2013-12-12 09:00:00.000 3628460,75 3628460,75
2013-12-12 10:00:00.000 3628460,75 3628460,75
2013-12-12 11:00:00.000 3628460,75 NULL
2013-12-12 06:00:00.000 3628460,75 3628460,75
我試着與聯接和我的變種實在太可怕了實現它:
select distinct DATEADD(second, DATEDIFF(second, GETUTCDATE(), GETDATE()), coalesce(VV1.[TimeStamp], VV2.[TimeStamp])) as Date, V1, V2
from vv1
full join vv2
on vv2.TimeStamp = vv1.TimeStamp
(DATEDD是UTC本地時間)
有人想到那是因爲表數是動態的,每次當我添加新表並想要查看新列我可以輕鬆編輯選擇的字符串。
但因爲填充雙,並與多個列,它只是去瘋狂和獨特的是骯髒的黑客合併這個變化是可怕的......
現在回想健全和快速的實現......如何使它?
你說的'variant'是什麼意思? – bendataclear
@bendataclear我的意思是我的嘗試或我的版本或我的錯誤代碼 – Cynede
你有時間戳列上的索引嗎?它可能有助於加速執行FULL JOIN。 – semao