2016-05-16 65 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查询不会更改任何内容,它们只是读取数据。 –