Tenho uma hierarquia de configurações que tem um padrão para todos, podem ser substituídas por grupos, ou por um usuário individual, para uma tela específica, etc...
Eles são armazenados em uma tabela com um Hiarchy-ID para classificar, assim:
HIERARCHY | SETTING | OPTION | PREFERENCE | COLOR |
----------+---------+--------+------------+-------+
100 | NULL | 1 | NULL | NULL |
10 | NULL | 2 | square | |
1 | 0 | 3 | rounded | green |
O resultado que procuro é para cada coluna, o primeiro valor não nulo (e seria ótimo se eu também pudesse esmagar um NULLIF(COLOR, '') também). Neste exemplo o resultado seria:
SETTING | OPTION | PREFERENCE | COLOR |
--------+--------+------------+-------+
0 | 1 | square | green |
Atualmente estou fazendo uma consulta separada para cada coluna, mas espero que isso possa ser alcançado de uma maneira mais elegante?
Estou trabalhando com MS SQL Server (e preciso suportar a versão 2005).