我目前正在获得如下结果:
Row | ParentLevel | ChildLevel |
1 | 1 | 1 |
2 | 2 | 2 |
3 | 2 | 3 |
我只希望当父母和孩子都没有匹配的结果时出现一行。
在这种情况下,第1行很好,因为这是父级1出现的唯一时间
第2行,我希望不出现,因为第3行在那里,并且父母和孩子在第3行中不匹配。
是否可以在where语句中设置?
答案 0 :(得分:0)
您可以使用not exists
:
select t.*
from t
where t.ParentLevel <> t.ChildLevel or
not exists (select 1
from t t2
where t2.ParentLevel = t.ParentLevel and t2.ParentLevel <> t2.ChildLevel
);