我在SQL Server 2008中工作。我有一個查詢,我在兩個表之間做一個LEFT JOIN查看錶A中的哪些行不在表B中。基本查詢是:SQL Server:連接條件ON語句的兩個表
SELECT
A.a_col,
B.b_col
FROM A
LEFT JOIN B
ON A.some_key = B.another_key
WHERE
B.another_key IS NULL
我需要在任何行從給定查詢返回時再次運行相同的查詢。但是,如果第二個查詢運行,我不希望上述查詢中的任何行輸出。在第二個實例,我需要如下轉化A.some_key一點:
SELECT
A.a_col,
B.b_col
FROM A
LEFT JOIN B
ON '0' + A.some_key = B.another_key
WHERE
B.another_key IS NULL
我需要在一個SQL批處理兩個步驟(語句的組)。換句話說,如果有任何行從第一個查詢返回,則執行第二個查詢,最終結果集僅來自第二個查詢,而不是第一個查詢。我如何實現這一目標?
如果行返回第一個,但是第二個存在,你想從第二個查詢得到數據嗎? – HLGEM 2015-02-09 22:08:29
是的。基本上,我試圖看看A.some_key是否在表B中。如果在some_key上找不到它,那麼我需要查看它是否在'0'+ some_key上找到。 – user3100444 2015-02-09 22:09:59
因此,如果你能夠在結果中找到兩者,聯盟聲明是最簡單的方法。 – HLGEM 2015-02-09 22:12:13