Maneira mais fácil de eliminar NULLs em SELECT DISTINCT?

Eu estou trabalhando em uma consulta que é bastante semelhante ao seguinte:

<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>

O resultado é, sem surpresa,

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

A saída que gostaria de ver na realidade é:

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

Ou seja, se uma coluna tiver um valor em alguns registros, mas não em outros, eu quero descartar a linha com NULL para essa coluna. No entanto, se uma coluna tiver um valor NULL para todos os registros, desejo preservar esse NULL.

Qual é a maneira mais simples / elegante de fazer isso em uma única consulta?

Tenho a sensação de que isso seria simples se eu não estivesse exausto numa tarde de sexta-feira.

questionAnswers(7)

yourAnswerToTheQuestion