我有一個帶有公共ID字段的表A和B.我想在這些表上完成一個完整的外連接,根據ID來自哪個表,選擇ID和'表A'或'表B'。如何使用完全外連接顯示動態數據?
SELECT ID, ['tableA'|'tableB']
FROM A FULL OUTER JOIN B ON A.ID = B.ID
WHERE A.ID IS NULL OR B.ID IS NULL
我有一個帶有公共ID字段的表A和B.我想在這些表上完成一個完整的外連接,根據ID來自哪個表,選擇ID和'表A'或'表B'。如何使用完全外連接顯示動態數據?
SELECT ID, ['tableA'|'tableB']
FROM A FULL OUTER JOIN B ON A.ID = B.ID
WHERE A.ID IS NULL OR B.ID IS NULL
試試這個:
SELECT COALESCE(A.ID , B.ID) AS ID ,
CASE WHEN A.ID IS NOT NULL AND B.ID IS NULL THEN <tableA results>
WHEN A.ID IS NULL AND B.ID IS NOT NULL THEN <tableB results>
END AS results
FROM A FULL OUTER JOIN B ON A.ID = B.ID
WHERE A.ID IS NULL OR B.ID IS NULL
@TT。同意。但是看看where子句,看起來我們只有在A.ID爲NULL或B.ID爲NULL的情況下才會提取數據。 –
絕對正確=)我的壞。具有嵌套選擇語句的 –
原來這就是我想出了從標籤的一點幫助後。
SELECT ID, SELECT CASE WHEN ID IN (SELECT ID FROM A) THEN 'tableA'
WHEN ID IN (SELECT ID FROM B) THEN 'tableB'
FROM A FULL OUTER JOIN B ON A.ID = B.ID
WHERE A.ID IS NULL OR B.ID IS NULL
簡單的編程問題。請google以及瞭解tSQL中的CASE表達式。 –
喜歡這個? SELECT CASE當ID IN(SELECT ID FROM A)then'tableA'WHEN(SELECT ID FROM B) – WedgeBuster53
我在想更多的是什麼時候B.Id是NULL那麼'TableA'...'但是有多種方式'CASE '可以在這裏使用。 –