Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memesan Jadual PostgreSQL mengikut Tarikh/Masa, Mengutamakan Nilai NULL?

Bagaimana untuk Memesan Jadual PostgreSQL mengikut Tarikh/Masa, Mengutamakan Nilai NULL?

DDD
Lepaskan: 2025-01-23 02:28:09
asal
886 orang telah melayarinya

How to Order a PostgreSQL Table by Date/Time, Prioritizing NULL Values?

Jadual PostgreSQL diisih mengikut tarikh/masa, mengendalikan nilai NULL dahulu

Pentadbir pangkalan data selalunya perlu mengisih data dalam susunan tertentu dan PostgreSQL menyediakan pelbagai pilihan untuk menyesuaikan tingkah laku pengisihan. Senario biasa ialah mengisih mengikut medan tarikh/masa sambil mengendalikan nilai NULL mengikut susunan yang dikehendaki.

Masalah: keutamaan nilai NULL

Andaikan anda perlu mengisih jadual dalam tertib menaik mengikut medan tarikh/masa 'last_updated' dan proses rekod dengan nilai NULL dahulu. Cabarannya ialah susunan menaik lalai (ASC) PostgreSQL meletakkan nilai NULL pada penghujung keputusan.

Penyelesaian: Gunakan pengubah suai NULLS FIRST

PostgreSQL menyediakan pengubah suai 'NULLS FIRST |. LAST' untuk ungkapan ORDER BY. Menambah pengubah suai 'NULLS FIRST' pada medan 'last_updated' dalam klausa ORDER BY memastikan rekod dengan nilai NULL muncul sebelum nilai bukan NULL:

<code class="language-sql">... ORDER BY last_updated NULLS FIRST</code>
Salin selepas log masuk

NULLS TERAKHIR dan sokongan indeks

Untuk pengisihan menurun (DESC), kes penggunaan biasa ialah 'NULLS LAST', yang membalikkan tertib menaik lalai, meletakkan nilai NULL ​​pada permulaan. Untuk mengisih nilai NULL terakhir, gunakan:

<code class="language-sql">... ORDER BY last_updated DESC NULLS LAST</code>
Salin selepas log masuk

Untuk mengoptimumkan pertanyaan dengan indeks, pastikan indeks sepadan dengan susunan isihan:

<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated DESC NULLS LAST);</code>
Salin selepas log masuk

Nota Prestasi

Kedudukan nilai NULL mempengaruhi prestasi pertanyaan. Untuk beberapa rancangan pertanyaan, PostgreSQL cuba menambahkan nilai NULL pada permulaan ('NULLS FIRST') atau penghujung ('NULLS LAST'). Pautan berikut memberikan cerapan tentang kesan prestasi:

Atas ialah kandungan terperinci Bagaimana untuk Memesan Jadual PostgreSQL mengikut Tarikh/Masa, Mengutamakan Nilai NULL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan