构建 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'
我关注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'