我的问题是,是否可以根据比较规则选择表中的某些行而不从结果中删除任何内容。为了澄清我想要想象的例子。
我有一个包含两个值的表,
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有时会让人感到困惑。
答案 0 :(得分:0)
在没有示例结果集的情况下告诉你;但也许是这样的:
SELECT A, B, C
FROM myTable
WHERE (B = 0 AND C LIKE '%A%')
OR (B <> 0 AND B = A)
答案 1 :(得分: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)