我需要編寫一個基於條件(在這種情況下,基於其中一列中的值)連接表的選擇查詢。我願做這樣的事情:有條件連接可能在SQL Server 2005中?
SELECT *
FROM TableA
INNER JOIN TableB ON (TableA.Column1 = TableB.Column1 OR TableA.Column1 = 0) -- Does not work!
我需要編寫一個基於條件(在這種情況下,基於其中一列中的值)連接表的選擇查詢。我願做這樣的事情:有條件連接可能在SQL Server 2005中?
SELECT *
FROM TableA
INNER JOIN TableB ON (TableA.Column1 = TableB.Column1 OR TableA.Column1 = 0) -- Does not work!
這應該達到什麼樣的你需要:
SELECT *
FROM TableA A
WHERE A.Column1 = 0
OR EXISTS(
SELECT B.Column1
FROM TableB B
WHERE B.Column1 = A.Column1
);
我不完全相信你在做什麼,但它好像你正在尋找一個外部聯接:
SELECT *
FROM TableA LEFT OUTER JOIN TableB ON TableA.Column1 = TableB.Column1
WHERE TableB.Column1 IS NOT NULL
OR TableA.Column1 = 0
如果你想從表B從表A行和列,只是使用由UNION命令分開的兩個SELECT語句。
據我所知,條件連接是不可能的,但還有其他方法可以實現類似的結果。你能否更新你的問題以包括你想要在你的例子中實現的內容? – 2009-01-30 16:50:37
你期待什麼結果A INNER JOIN B ON A.Col = 0? – devio 2009-01-30 17:05:54
預期結果的示例數據在這裏會很棒。表格定義會更好,但對於這樣的問題可能不是必需的。 – 2009-01-30 18:55:08