Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengisih Jadual PostgreSQL dengan Nilai NULL Pertama atau Terakhir?
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!