0

次の表があります。ID1 , ID2, Name, Sex

テーブルには、ID1 が重複しているが、ID2、名前、および性別が異なるレコードがあります。また、ID2 が重複しており、ID1、名前、および性別が異なるレコードもあります。ID1 と ID2 の両方に null 値を指定できますが、同じエントリを指定することはできません。id1 と id2 の重複しないレコードを選択する必要があります。

id1   id2      name    sex
10     null    jack     M
10     null    tom      M
null   40      jennie   F
null    32     jenie    F
null    32     emma     M
10     null    stevie   M

返すには選択クエリが必要です:

id1   id2     name     sex
10     any    any      any (any means it can be either jack,tom,stevie)
null   40     jennie   F
null   32     any      any2 (any2 meaning jeniw or emma)
4

1 に答える 1

2

節でanEXISTSを使用できます。WHERE

select t1.id1,
  t1.id2,
  name,
  sex
from yourtable t1
where exists (select *
              from yourtable t2
              where t1.id1 = t2.id1
               or t1.id2 = t2.id2)
group by t1.id1, t1.id2

デモで SQL Fiddle を参照してください

于 2012-08-27T22:58:32.590 に答える