选择问题

时间:2011-09-02 17:53:54

标签: sql sql-server-2005 select relational-algebra

我有一个包含两列

的行的表
A 1
A 2
B 1
B 3
C 1
C 2
C 3

我想从这个只得到这个ID(a,b或c)只有2行值1,2,所以从这个表我得到一个,因为b没有2行,并且c有1和b的行,但也有c ...的行。

获取此行的最简单方法是什么?

2 个答案:

答案 0 :(得分:6)

SELECT col1
FROM YourTable
GROUP BY col1
HAVING COUNT(DISTINCT col2) =2 AND MIN(col2) = 1 AND MAX(col2) = 2

或者可以扩展到超过2个数字的另一种方式

SELECT col1
FROM   yourtable
GROUP  BY col1
HAVING MIN(CASE
             WHEN col2 IN ( 1, 2 ) THEN 1
             ELSE 0
           END) = 1
       AND COUNT(DISTINCT col2) = 2 

答案 1 :(得分:0)

select t1.col1 
from table as t1 
left join table as t2 on (t1.col1 = t2.col1) 
where t1.col2 = 1 and t2.col2 = 2;