sql >> Database teknologi >  >> RDS >> PostgreSQL

Sorter efter kolonne ASC, men NULL-værdier først?

Postgres har NULLS FIRST | LAST modifikatorer for ORDER BY udtryk:

... ORDER BY last_updated NULLS FIRST

Den typiske use case er med faldende sorteringsrækkefølge (DESC ), som producerer den fuldstændige inversion af standard stigende rækkefølge (ASC ) med null-værdier først - hvilket ofte ikke er ønskeligt. For at sortere NULL værdier sidste:

... ORDER BY last_updated DESC NULLS LAST

For at understøtte forespørgslen med et indeks , få det til at matche:

CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);

Postgres kan læse btree-indekser baglæns, men for nogle forespørgselsplaner er det vigtigt, hvor NULL værdier er tilføjet. Se:

  • Ydeevnepåvirkning af visning på aggregeret funktion vs. begrænsning af resultatsæt


  1. Hvorfor er logiske læsninger for aggregerede vinduesfunktioner så høje?

  2. Oracle RAC på tredjepartsskyer

  3. Vælg mellem agentbaseret og agentløs overvågning

  4. WHERE_IN-forespørgsel med en sammensat nøgle?