如何选择包含提供值的列的行

New*_*Bee 1 sql t-sql sql-server sql-server-2012

大家都考虑跟随我的表结构

Col1   Col2 Col3 
A       1    Aa
A       2    Bb
A       1    Aa
A       4    Bb
B       2    Bb
C       1    Aa
C       5    Bb
D       3    Aa
Run Code Online (Sandbox Code Playgroud)

如您所见,Col3包含Aa和Bb的distint值.

我正在尝试编写一个查询,该查询仅返回Col1具有值Aa和Bb(两者)或Aa(单独)的行.

要点是删除那些只有Bb与不同的Col1值相关联的行.

示例 - 对于Col1 A的不同值应在相应的Col3中具有Aa和Bb/Aa.Col1中B的值违反了此要求,因此结果集不应具有与B关联的行.

预期产量 -

Col1   Col2 Col3 
A       1    Aa
A       2    Bb
A       1    Aa
A       4    Bb
C       1    Aa
C       5    Bb
D       3    Aa
Run Code Online (Sandbox Code Playgroud)

M.A*_*Ali 7

SELECT * 
FROM TableName T 
WHERE EXISTS ( SELECT 1 
               FROM TableName
               WHERE T.Col1 = Col1 
                AND  Col3 = 'Aa')
Run Code Online (Sandbox Code Playgroud)