Saa*_*nch 3 sql t-sql distinct-values notnull
我有一个包含Value ID和Value的表
--------------
| id | value |
--------------
| 1 | NULL |
--------------
| 1 | A |
--------------
| 2 | NULL |
--------------
| 2 | NULL |
--------------
| 3 | B |
--------------
| 3 | B |
--------------
| 3 | B |
--------------
Run Code Online (Sandbox Code Playgroud)
我需要从表中选择不同的id和相应的值.选择Id时应该是唯一的,如果它在值字段中有多个值,则它应该只检索非NULL值
所以结果应该如下.
--------------
| id | value |
--------------
| 1 | A |
--------------
| 2 | NULL |
--------------
| 3 | B |
--------------
Run Code Online (Sandbox Code Playgroud)
怎么做到这一点?使用SQL Server 2005
你可以使用常规GROUP BY
.
该GROUP BY
遗嘱
NULL
值,1
因为存在其他值.NULL
值,2
因为它只有NULL
值.SELECT id
, MIN(value)
FROM YourTable
GROUP BY
id
Run Code Online (Sandbox Code Playgroud)
;WITH q (id, value) AS (
SELECT 1, NULL
UNION ALL SELECT 1, 'A'
UNION ALL SELECT 2, NULL
UNION ALL SELECT 2, NULL
UNION ALL SELECT 3, 'B'
UNION ALL SELECT 3, 'B'
UNION ALL SELECT 3, 'B'
)
SELECT id
, MIN(value)
FROM q
GROUP BY
id
Run Code Online (Sandbox Code Playgroud)