0

私は次のようなテーブルを持っています:

ID, Val

次のような値で:

1,2
1,NULL
2,NULL
3,2

どうすれば入手できますか

1,2
2,null
3,2

これは、 ですべての行を取得することを意味しval = 2ます。Val = 2

4

3 に答える 3

3

「val = 2 のすべての行を取得するか、Val = 2 を持たない ID の行を取得する」を次のように解釈します。

select * from table x
where x.val = 2
or not exists (select 1 from table where id = x.id and val = 2)
于 2013-04-11T18:48:58.063 に答える
0

試す:

select t.id, t2.val
from (select distinct id from myTable) t
left join myTable t2 on t.id=t2.id and t2.val=2

ここでSQLFiddle 。

于 2013-04-11T18:44:08.700 に答える
0
SELECT DISTINCT *
FROM `table`
WHERE `Val` = 2
   OR ( `ID` = 2 AND ( `Val` != 2 OR `Val` IS NULL ) )
于 2013-04-11T18:45:22.577 に答える