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 に答える