选择对其他行

时间:2015-05-06 12:03:47

标签: sql tsql select rows

我的表格数据为:

C1    || C2  
-----------------
1     || a   
1     || b   
1     || c   
2     || a   
2     || b  
2     || c   
3     || a   
3     || b   
4     || c   
4     || d   
5     || c   
6     || a  

我要选择所有具有C2 bc且非值的C1个人号码。建议?

仅限 - > C1 = 4和5

2 个答案:

答案 0 :(得分:0)

您可以使用having子句来计算其他值。如果计数为0,那么您需要c1值:

select c1
from table t
group by c1
having sum(case when c2 in ('b', 'c') then 1 else 0 end) = 0

答案 1 :(得分:0)

这个答案采用了与Gordon Lindoff的答案类似的技巧。

您可以将GROUP BYhaving这样使用。

select c1
from table t
group by c1
having sum(case when c2 in ('b', 'c') then 1 else 0 end) > 0 
and sum(case when c2 = 'a' then 1 else 0 end) = 0