2

如果我有一个具有如下值的表:

ID  SUBID    FLAG
-----------------
 1      1       1
 1      2  (null)
 2      3       1
 2      3  (null)
 3      4       1
 4      5       1
 4      6  (null)
 5      7       0
 6      8  (null)
 7      9       1

并且我想获取所有 'FLAG' 仅设置为 1 的 ID,因此在这种情况下,查询将返回

ID  SUBID    FLAG
-----------------
 3      4       1
 7      9       1

我怎样才能做到这一点?

4

2 回答 2

2

试试这个:

SELECT * FROM flags where flag=1
and ID NOT in( SELECT ID FROM flags where flag !=1 OR flag IS NULL)
于 2012-10-24T12:00:18.297 回答
1

我没有要测试的 db2 实例,但这可能有效:

select t1.id, t1.subid, t1.flag
from yourtable t1
inner join
(
  select id 
  from yourtable 
  group by id
  having count(id) = 1
) t2
  on t1.id = t2.id
where t1.flag = 1;
于 2012-10-24T11:54:52.513 回答