Oracle
 sql >> база данни >  >> RDS >> Oracle

Подредете редовете с помощта на колони от по-малък брой null до никакъв брой null

Това е доста болезнено. По принцип един метод използва огромно добавяне на case изрази, като:

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

Би било много по-лесно да поправите своя модел на данни, за да съхранявате кодовете като редове а не колони. След това можете да използвате агрегиране:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sqlplus - използване на свързваща променлива в IN клауза

  2. Как мога да разреша ORA-00911:грешка с невалиден знак?

  3. Как да получите редове от таблица, ако общите редове са повече от 10 в Oracle?

  4. php:зареждането на драйвера на oracle дава грешка Не може да се зареди динамична библиотека - Посочената процедура не може да бъде намерена.

  5. Как мога да изпълня тази заявка в oracle