下面是我的桌子
col1 | col2 |
---|---|
02/03/50 | y |
02/03/50 | n |
05/06/80 | n |
07/08/91 | y |
我只想用 col2 = 'y' 检索两列,即 07/08/91。
它不应该检索 02/03/50,因为它同时具有 Y 和 N。
答案 0 :(得分:2)
假设 col2
不可为空,使用 NOT EXISTS
:
SELECT t1.*
FROM tablename t1
WHERE NOT EXISTS (
SELECT 1
FROM tablename t2
WHERE t2.col1 = t1.col1 AND t2.col2 = 'N'
)
答案 1 :(得分:1)
如果您只需要第一列,请使用聚合。如果第二列只采用 'Y'
和 'N'
,您可以使用:
select col1
from t
group by col1
having min(col2) = 'Y';
这使用了 'Y' > 'N'
的事实。如果该列有更多值,您可以改用:
select col1
from t
group by col1
having min(case when col2 = 'Y' then 0 else 1 end) = 0;