Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengisih Jadual PostgreSQL dengan Nilai NULL Pertama atau Terakhir?

Bagaimana untuk Mengisih Jadual PostgreSQL dengan Nilai NULL Pertama atau Terakhir?

Susan Sarandon
Susan Sarandonasal
2025-01-23 02:43:09649semak imbas

How to Sort PostgreSQL Tables with NULL Values First or Last?

Isih jadual PostgreSQL: tetapan keutamaan nilai NULL

Apabila mengisih jadual PostgreSQL mengikut medan tarikh/masa dalam tertib menaik, anda mungkin menghadapi situasi di mana sesetengah rekod mempunyai nilai NULL dalam medan tersebut. Biasanya, rekod ini muncul selepas rekod bukan NULL. Walau bagaimanapun, anda mungkin mahu memaparkan rekod dengan nilai NULL dahulu.

Ungkapan ORDER BY PostgreSQL menyediakan pengubah suai NULLS FIRST untuk tujuan ini. Menggunakan pengubah suai ini anda boleh mengisih jadual seperti berikut:

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

Ini akan memastikan bahawa last_updated rekod dengan nilai NULL ​​untuk medan muncul sebelum rekod dengan nilai bukan NULL.

Untuk pengisihan menurun, anda boleh menggunakan NULLS LAST pengubah suai:

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

Untuk mencipta indeks yang menyokong pertanyaan ini, pastikan ia sepadan dengan susunan fasal ORDER BY:

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

Sebagai alternatif, anda boleh mencipta indeks tanpa menyatakan pilihan NULLS LAST secara eksplisit, kerana PostgreSQL boleh membaca indeks btree secara terbalik:

<code class="language-sql">CREATE INDEX foo_idx ON tbl (last_updated);</code>

Dalam sesetengah kes, kedudukan nilai NULL dalam indeks boleh menjejaskan prestasi pertanyaan. Lihat dokumentasi PostgreSQL untuk mendapatkan maklumat lanjut tentang ini.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Jadual PostgreSQL dengan Nilai NULL Pertama atau Terakhir?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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