0

我的问题是,是否可以根据比较规则选择表中的某些行而不从结果中删除任何内容。为了澄清我想想象的下面的例子。

我有一个有两个值的表,

 A | B | C
 1   0   hey
 1   1   there
 2   1   this
 3   0   is
 3   1   a
 4   0   test

现在我想选择在 B 列中具有 0 和在 C 列中具有 a 的行,而不删除在 B 列中没有 0 但在 A 列中具有相同值的结果。为此我可以这样做一个

 select C from T where A in (select A from T where B = 0);

但是是否可以选择 B 列包含 0 并且与 A 列匹配的所有 C 值?

如果需要更多信息,我很乐意等待,因为这是一个非常模糊的问题,但 SQL 有时会令人困惑。

4

2 回答 2

0

我想你只想要一个or条件:

select C
from MyTable
where b = 0 or A in (select A from T where B = 0)

这是你想要的版本吗:

select C
from MyTable
where C = 'a' or A in (select A from T where B = 0)
于 2012-12-13T14:51:55.533 回答
0

没有你的示例结果集很难说;但也许是这样的:

SELECT A, B, C
FROM myTable
WHERE (B = 0 AND C LIKE '%A%')
OR (B <> 0 AND B = A)
于 2012-12-13T14:34:36.277 回答