sql >> Databáze >  >> RDS >> PostgreSQL

Třídit podle sloupce ASC, ale nejprve hodnoty NULL?

Postgres má NULLS FIRST | LAST modifikátory pro ORDER BY výraz:

... ORDER BY last_updated NULLS FIRST

typické případ použití je s sestupným řazením (DESC ), což vytvoří úplnou inverzi výchozího vzestupného pořadí (ASC ) s nulovými hodnotami jako první – což často není žádoucí. Chcete-li seřadit NULL hodnoty poslední:

... ORDER BY last_updated DESC NULLS LAST

Pro podporu dotazu pomocí indexu , aby to odpovídalo:

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

Postgres umí číst indexy btree pozpátku, ale u některých plánů dotazů záleží kde NULL hodnoty jsou připojeny. Viz:

  • Dopad zobrazení na výkon na agregovanou funkci vs. omezení sady výsledků


  1. rozdíl mezi plánem vysvětlit a plánem provedení

  2. Jak získat seznam tabulek bez omezení primárního klíče ve všech databázích instance SQL Server - SQL Server / TSQL výukový program, část 62

  3. Zkoumání chyby ORA 028513 DG4ODBC

  4. Jak používat klauzuli Where v příkazu Select v SQL Server - SQL Server / Výukový program TSQL, část 109