2009-01-30 31 views
1

我需要編寫一個基於條件(在這種情況下,基於其中一列中的值)連接表的選擇查詢。我願做這樣的事情:有條件連接可能在SQL Server 2005中?

SELECT * 
    FROM TableA 
     INNER JOIN TableB ON (TableA.Column1 = TableB.Column1 OR TableA.Column1 = 0) -- Does not work! 
+0

據我所知,條件連接是不可能的,但還有其他方法可以實現類似的結果。你能否更新你的問題以包括你想要在你的例子中實現的內容? – 2009-01-30 16:50:37

+0

你期待什麼結果A INNER JOIN B ON A.Col = 0? – devio 2009-01-30 17:05:54

+0

預期結果的示例數據在這裏會很棒。表格定義會更好,但對於這樣的問題可能不是必需的。 – 2009-01-30 18:55:08

回答

0

這應該達到什麼樣的你需要:

SELECT * 
FROM TableA A 
WHERE A.Column1 = 0 
    OR EXISTS(
      SELECT B.Column1 
      FROM TableB B 
      WHERE B.Column1 = A.Column1 
      ); 
4

我不完全相信你在做什麼,但它好像你正在尋找一個外部聯接:

SELECT * 
FROM TableA LEFT OUTER JOIN TableB ON TableA.Column1 = TableB.Column1 
WHERE TableB.Column1 IS NOT NULL 
    OR TableA.Column1 = 0 
0

如果你想從表B從表A行和列,只是使用由UNION命令分開的兩個SELECT語句。