我正在試圖做一個簡單的左連接與2 ID的表 - 基本上是一個ID和子ID。每一行都有一個ID,但不一定是一個Sub-ID。當一個子標識存在時,我想根據該標識加入,如果不加入標識。我想像像CASE語句的JOIN ON子句取決於字段是否爲NULL?
SELECT ...
FROM tablename a
LEFT JOIN tablename b
ON CASE WHEN SUB_ID IS NOT NULL THEN
a.SUB_ID = b.SUB_ID
ELSE
a.ID = b.ID END
AND
a.otherfield = b.otherfield
但我無法得到任何像這樣的工作,所以不是我不得不這樣做2個查詢使用UNION(一個在SUB_ID加入WHERE SUB_ID IS NOT NULL,另一個加入ID WHERE SUB_ID是空的。)它的工作,但我無法想象有沒有辦法做到這一點。如果有幫助,我的ID和SUB_ID值如下所示:
ID SUB_ID
10000 NULL
10001 NULL
10001 10001-3
10001 10001-5
10014 NULL
有關如何在沒有建立UNION的情況下實現此目的的任何建議?提前致謝!!
感謝大家的反饋,可能很多的解決方案的工作,這只是一個我第一次嘗試,並獲得結果我在尋找。謝謝! – Jay