sql >> Database >  >> RDS >> PostgreSQL

Sorteer op kolom ASC, maar eerst NULL-waarden?

Postgres heeft de NULLS FIRST | LAST modifiers voor ORDER BY uitdrukking:

... ORDER BY last_updated NULLS FIRST

De typische use case is met aflopende sorteervolgorde (DESC ), die de volledige inversie van de standaard oplopende volgorde produceert (ASC ) met null-waarden eerst - wat vaak niet wenselijk is. Om NULL te sorteren waarden laatste:

... ORDER BY last_updated DESC NULLS LAST

Om de zoekopdracht te ondersteunen met een index , laat het overeenkomen:

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

Postgres kan btree-indexen achterstevoren lezen, maar voor sommige queryplannen maakt het uit waar NULL waarden worden toegevoegd. Zie:

  • Prestatie-impact van weergave op geaggregeerde functie versus beperking van resultaatset


  1. maak een aangepaste functie voor datumverschil met uitzondering van weekends en feestdagen in oracle sql

  2. Waarschuwing:kan header-informatie niet wijzigen - headers zijn al per fout verzonden

  3. Kan ik een standaardschema instellen voor binnen een opgeslagen procedure?

  4. Moeten we niet null opgeven voor de primaire sleutel? Oracle/SQL