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

build where clause to verify only once first clause is met

我关注sql select:

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

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

谢谢

试试这个。它只会在列为 'ABC':

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

根据你的问题标签,我不确定你是否想弄清楚如何使用 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'