如果Column2中的所有值都是特定值,则返回Column1

时间:2013-10-21 20:20:44

标签: sql-server

尝试创建一个查询,查看第1列中具有相同值的所有行,然后返回column1中的值,如果column2中的值是特定值。

实施例

如果这是我的表:

111 | X

111 | X

111 | X

222 | X

222 | Y

333 | X

333 | X

我想找到并返回第1列中所有行中第2列都有X的任何值,我希望结果为:

111

333

由于1111和3333的所有实例在column2中都有一个X

提前致谢!!!

2 个答案:

答案 0 :(得分:1)

尚未对真实数据库进行过测试,但这应该是一个技巧:

select column1
from table
group by column1
having count(distinct column2)=1 and min(column2) = 'X'

答案 1 :(得分:1)

SELECT DISTINCT col1 
FROM   dbo.table1 t1 
WHERE  NOT EXISTS(SELECT 1 FROM   dbo.table1 t2 
                  WHERE  t1.col1 = t2.col1 
                    AND  t2.col2 <> 'X') 

DEMO