首页 > 解决方案 > 选择行,对于 A 列中的相同值,B 列在所有行中都具有特定值

问题描述

我需要找到行,对于 A 中的相同值,B 列在所有行中都具有特定值。

例如,给定表:

A栏 B栏
妈妈 成功
妈妈 成功
爸爸 成功
爸爸 失败
孩子 失败
孩子 失败

假设我想要 A 列中相同值的 B 列全部为“失败”的所有行。在这种情况下,我想要:

A栏 B栏
孩子 失败
孩子 失败

标签: sqloracle

解决方案


您可以使用not exists

select t.*
from t
where not exists (select 1
                  from t t2
                  where t2.a = t.a and t2.b <> 'failure'
                 );

推荐阅读