构建where子句,只在满足第一个子句时进行验证



我有以下sql选择:

select ...
from table1 a, table2 b
where 
a.column = 'ABC' and
a.column2 = b.column2

我只想在a.column = 'ABC'时检查是否为a.column2 = b.column2。我该怎么做?

感谢

我不确定您的问号是否正试图弄清楚如何使用JOIN来实现这一点(而不是如何使用WHERE子句),但无论如何——有几种方法:

1) --带有WHERE子句

select ...
from 
   table1 a
   INNER JOIN table2 b
   ON a.column2 = b.column2
where 
   a.column = 'ABC'

2) --不带WHERE子句

select ...
from 
   table1 a
   INNER JOIN table2 b
   ON a.column2 = b.column2
   AND a.column = 'ABC'

试试这个。只有当列为"ABC"时,它才会检查列2:

 select ...
 from table1 a, table2 b
 where 
 (a.column = 'ABC' and
 a.column2 = b.column2) or a.column <> 'ABC'

最新更新