Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Ordenar linhas usando colunas de um número menor de nulos a nenhum nulo


Isso é bastante doloroso. Basicamente, um método usa uma adição gigante de case expressões, como:
order by 
    (case when cod_t1 is null then 1 else 0 end)
    + (case when cod_t2 is null then 1 else 0 end)
    + (case when cod_t3 is null then 1 else 0 end)
    + ...

Seria muito mais simples corrigir seu modelo de dados para armazenar os códigos como linhas em vez de colunas. Então, você pode usar a agregação:
select id, quarter
from mytable
group by id, quarter
order by count(cod) desc