¿La forma más fácil de eliminar NULLs en SELECT DISTINCT?

Estoy trabajando en una consulta que es bastante similar a la siguiente:

<code>CREATE TABLE #test (a char(1), b char(1))

INSERT INTO #test(a,b) VALUES 
('A',NULL),
('A','B'),
('B',NULL),
('B',NULL)

SELECT DISTINCT a,b FROM #test

DROP TABLE #test
</code>

El resultado es, como era de esperar,

<code>a   b
-------
A   NULL
A   B
B   NULL
</code>

La salida que me gustaría ver en la actualidad es:

<code>a   b
-------
A   B
B   NULL
</code>

Es decir, si una columna tiene un valor en algunos registros pero no en otros, quiero eliminar la fila con NULL para esa columna. Sin embargo, si una columna tiene un valor NULL para todos los registros, quiero conservar ese NULL.

¿Cuál es la forma más sencilla / elegante de hacer esto en una sola consulta?

Tengo la sensación de que esto sería simple si no estuviera agotado un viernes por la tarde.

Respuestas a la pregunta(7)

Su respuesta a la pregunta