2016-05-16 66 views
0

我想在我的SQL查詢的WHERE子句中使用IF條件。但是比較應該來自另一個表的列。簡單地說,我的僞代碼是這樣的:SQL中的/否則Where Where子句

SELECT * FROM TABLE1 
WHERE 
(if DATE from TABLE2 = 0000 then select ID from TABLE2 as TABLE1.ID 
else if ID from TABLE2 = 00 then select DATE from table2 as TABLE1.DATE) 

感謝您的幫助。

+1

你如何加入表1和表2?他們是否有共同的領域,你用來鏈接他們?如果可以將這些表連接在一起,那麼後面的結果將是select語句中的一個簡單CASE。 –

+1

你使用的是MySQL還是MS SQL Server?有sp的遠不兼容... – jarlh

回答

1

你的僞代碼相當模糊,但據我的理解是,這樣的事情應該工作:

SELECT TABLE1.* 
FROM TABLE1 
INNER JOIN TABLE2 
    ON (TABLE2.DATE = '0000' AND TABLE1.ID = TABLE2.ID) 
    OR (TABLE2.ID = '00' AND TABLE2.DATE = TABLE1.DATE) 

this fiddle

+0

確實內連接更改原始表?因爲我不想更改原始表格。我會根據第二個表格拉出特定的日期或ID號碼,並從第一個表格中調用這些值。 –

+0

SELECT查詢不會更改任何內容,它們只是讀取數據。 –