我有这个输入表:
+-------------+--------------+-------+
| ProjectName | ProjectOwner | Col2 |
+-------------+--------------+-------+
| A | Sara | Sara |
| B | Jack | Maria |
| B | Jack | Jack |
| C | Laura | May |
| C | Laura | Laura |
| D | Paul | Jack |
| E | May | May |
| E | May | May |
+-------------+--------------+-------+
我想分别检查每个项目然后排除
Jack Jack
,一种。例如,在项目 B 中,Jack 在 Col2 中有他的名字并且他正在与 Maria 合作,因此删除
Jack Jack
湾同时删除
Laura Laura
在 C 项目中 输出表:
+-------------+--------------+-------+
| ProjectName | ProjectOwner | Col2 |
+-------------+--------------+-------+
| A | Sara | Sara |
| B | Jack | Maria |
| C | Laura | May |
| E | May | May |
+-------------+--------------+-------+
我试过这个 here但结果没有显示我的项目 A 和 E。
最佳答案
请试试这个代码:
select distinct *
from mytable m
where (ProjectOwner!=Col2 or not exists(select 1 from mytable m1 where m1.ProjectName=m.ProjectName and m1.ProjectOwner=m.ProjectOwner and m.Col2!=m1.Col2) )
and ProjectName in (select ProjectName from mytable where ProjectOwner=Col2 )
Demo
关于sql - 根据条件过滤掉某些行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51024071/