选择唯一结果并为null

时间:2015-11-13 20:18:36

标签: sql

我需要获取表中的所有行,这些行在某些字段和所有行中具有唯一值,而不是在此字段中具有null。例如:

id | name | group
-----------------
1  | One  | 1
2  | Two  | null
3  | Three| 3
4  | Four | 2
5  | Five | 1
6  | Six  | 2
7  | Seven| null

结果:

id | name | group
-----------------
1  | One  | 1
2  | Two  | null
3  | Three| 3
4  | Four | 2
7  | Seven| null

如何在一个请求中制作它?

1 个答案:

答案 0 :(得分:2)

select t.id, t.name, t.`group`
from tablename t 
join (select `group`, min(id) as mid
      from tablename
      where `group` is not null
      group by `group`) x on x.mid = t.id and x.`group` = t.`group`
union all 
select id, name, `group` 
from tablename
where `group` is null