sql >> Databasteknik >  >> RDS >> Oracle

Ordna rader med hjälp av kolumner från mindre antal null till inga nollvärden

Detta är ganska smärtsamt. I grund och botten använder en metod ett gigantiskt tillägg av case uttryck, som:

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

Det skulle vara mycket enklare att fixa din datamodell för att lagra koderna som rader snarare än kolumner. Sedan kan du använda aggregering:

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


  1. Exportera min Google Chart (tabell) data till excel eller csv

  2. Mysql - Analysfel (syntaxfel) i min kod

  3. Kan inte kompilera PL/SQL med BULK COLLECT och FORALL

  4. Hur man konverterar decimal till hexadecimal med TO_CHAR() i Oracle