我有一个表,我想获取 s#,其中 s# 有 p1 但没有 p2;
表
s# P#
s1 p1
s1 p2
s1 p3
s1 p4
s2 p1
s2 p3
s3 p2
s3 p3
我的结果应该是 s2。我尝试返回 s1,s2 的 where 子句和连接,这是错误的。
最佳答案
试试这个:
SELECT s#
FROM (SELECT s#, SUM(CASE WHEN p# = 'p1' THEN 1 ELSE 0 END) p1ct
, SUM(CASE WHEN p# = 'p2' THEN 1 ELSE 0 END) p2ct
FROM s
GROUP BY s#)
WHERE p1ct > 0
AND p2ct = 0;
关于mysql - Oracle 从另一列中选择有或没有值的列条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14844883/