Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memesan Data PostgreSQL dengan NULLs Last, Kecuali untuk Nilai Tertentu?

Bagaimana untuk Memesan Data PostgreSQL dengan NULLs Last, Kecuali untuk Nilai Tertentu?

Susan Sarandon
Lepaskan: 2025-01-04 05:33:42
asal
381 orang telah melayarinya

How to Order PostgreSQL Data with NULLs Last, Except for a Specific Value?

Memesan Nilai NULL Selepas Semua Lain, Kecuali Khas

Apabila mengisih data dalam jadual PostgreSQL yang mengandungi medan pesanan pilihan, cabaran biasa sedang mengendalikan nilai nol. Adalah wajar untuk meletakkan tugasan dengan nilai isihan nol selepas semua yang lain, tetapi berikan keutamaan kepada tugasan dengan nilai isihan khas, seperti -1.

Ini boleh dicapai dengan menggunakan fungsi COALESCE bersama-sama dengan pengendali boolean , khususnya pengendali (TIDAK BERBEZA DARI). Pertanyaan berikut menunjukkan pendekatan ini:

SELECT *
FROM tasks
ORDER BY (sort IS NOT DISTINCT FROM -1), sort;
Salin selepas log masuk

Cara ia Berfungsi:

Ungkapan (isihan TIDAK BERBEZA DARI -1) dinilai kepada FALSE untuk semua nilai kecuali -1, yang menilai kepada BENAR. Dalam susunan isihan lalai PostgreSQL, nilai NULL diletakkan di tempat terakhir, manakala TRUE ditarafkan lebih tinggi daripada FALSE.

Dengan memasukkan ungkapan ini ke dalam klausa ORDER BY, tugasan dengan nilai isihan -1 diletakkan selepas tugas dengan bukan- nilai isihan nol, manakala tugasan dengan nilai isihan nol diletakkan selepas semua yang lain tugasan.

Nota Tambahan:

Pertanyaan setara alternatif boleh ditulis menggunakan kata kunci DESC:

SELECT *
FROM tasks
ORDER BY (sort IS DISTINCT FROM -1) DESC, sort;
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Memesan Data PostgreSQL dengan NULLs Last, Kecuali untuk Nilai Tertentu?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan