我有一个包含Value ID和Value
的表--------------
| id | value |
--------------
| 1 | NULL |
--------------
| 1 | A |
--------------
| 2 | NULL |
--------------
| 2 | NULL |
--------------
| 3 | B |
--------------
| 3 | B |
--------------
| 3 | B |
--------------
我需要从表中选择不同的id和相应的值。选择Id时应该是唯一的,如果它在值字段中有多个值,则它应该只检索不是NULL值
所以结果应该如下所示。
--------------
| id | value |
--------------
| 1 | A |
--------------
| 2 | NULL |
--------------
| 3 | B |
--------------
如何实现这一目标?使用SQL Server 2005
答案 0 :(得分:5)
您可以使用常规GROUP BY
。
GROUP BY
将
NULL
中消除1
值,因为存在其他值。NULL
的{{1}}值,因为它只有2
个值。NULL
SELECT id
, MIN(value)
FROM YourTable
GROUP BY
id
答案 1 :(得分:1)
这有点令人费解,但应该可以解决这个问题:
select distinct x.id, x.value
from table x
where x.value is not null
or not exists
(select y.id
from table y
where y.id = x.id
and y.value is not null)