我正試圖找到一種替代方法來使用我寫的存儲過程的全外聯接。這是場景。這是一個完整的外部連接需要嗎?
兩張大多數無關的數據表,表示需要發生的事件。這些事件需要按時間順序進行處理,並且這兩個表都有一個日期時間列。所以我需要得到一個單獨的表,充當按照datetime排序的所有這些事件的列表(這兩個日期時間列需要混合在一起)。
一個小問題:有時兩個表中的事件會有關係,在這種情況下,無論日期時間如何,來自表A的事件都需要先執行。所以如果A有3個事件,B有3個事件,但是A和B之間有一對相關的對,我想返回5行。在存在不相關數據的情況下,將會有NULL數據(這沒關係,我使用NULL數據檢查來確定接下來要做什麼,即處理事件A或B等)。像這樣:
SELECT
CASE
WHEN A.EventDateTime IS NULL THEN B.EventDateTime
ELSE A.EventDateTime
END AS SortDateTime,
A.EventId,
B.EventId,
FROM A FULL OUTER JOIN B
ON A.RelatedData=B.RelatedData
ORDER BY SortDateTime
您的意思是來自表A的事件需要先行,而不管日期時間,您在A事件之後插入B事件,還是根本不?你能否給我們一些測試數據,例如A中的3個事件,B中的3個事件,以及你需要的結果? – 2011-03-01 13:59:23