如何返回特定值至少出现一次的组中的所有行

时间:2015-03-04 09:41:02

标签: sql-server

如何返回显示特定值的记录组中的所有行?

例如,这里是示例表:

id code
1  E100
1  E200
1  E300
2  E100
2  E300
3  E300
3  E400

在此表格中,我希望获得代码id出现的所有codeE100' s。因此,如果它显示在id=1上,我想返回id=1的所有行。

基于以上数据的所需输出:

id code
1  E100
1  E200
1  E300
2  E100
2  E300

id=3未包含在内,因为它未在E100列中保留值code

2 个答案:

答案 0 :(得分:1)

使用Exists Operator

select * 
from yourtable a
where exists 
(
select 1 
from yourtable b 
where a.id=b.id 
and b.code ='E100'
)

答案 1 :(得分:0)

SELECT * FROM Table WHERE id IN (
   SELECT id FROM Table WHERE code = 'E100'
)