Oracle
 sql >> Base de données >  >> RDS >> Oracle

Trier les lignes en utilisant des colonnes de moins de nombre de null à aucun null

C'est plutôt douloureux. Fondamentalement, une méthode utilise un ajout géant de case expressions, comme :

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)
    + ...

Il serait beaucoup plus simple de corriger votre modèle de données pour stocker les codes sous forme de lignes plutôt que des colonnes. Ensuite, vous pouvez utiliser l'agrégation :

select id, quarter
from mytable
group by id, quarter
order by count(cod) desc