Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengisih Nilai NULL ke Penghujung Jadual PostgreSQL?

Bagaimana untuk Mengisih Nilai NULL ke Penghujung Jadual PostgreSQL?

DDD
DDDasal
2024-12-26 16:24:14758semak imbas

How to Sort NULL Values to the End of a PostgreSQL Table?

Mengisih Nilai NULL ke Hujung Jadual dalam PostgreSQL

Apabila mengisih data, nilai NULL boleh memberikan cabaran kerana ia boleh mengganggu perintah yang dimaksudkan. Dalam PostgreSQL, terdapat gelagat berbeza untuk nilai NULL berdasarkan susunan isihan yang digunakan.

Tertib Menaik Lalai

Secara lalai, apabila mengisih baris dalam tertib menaik, nilai NULL diletakkan pada permulaan keputusan. Ini kerana NULL dianggap kurang daripada mana-mana nilai bukan NULL.

Turutan Menurun tanpa NULLS LAST

Walau bagaimanapun, apabila mengisih dalam tertib menurun tanpa menggunakan NULLS Pilihan TERAKHIR, nilai NULL diletakkan di bahagian atas. Ini kerana NULL dianggap lebih besar daripada mana-mana nilai bukan NULL dalam tertib menurun.

Turutan Menurun dengan NULLS LAST

Untuk mengisih nilai NULL hingga akhir jadual dalam tertib menurun, gunakan pilihan NULLS LAST:

ORDER BY somevalue DESC NULLS LAST

Pilihan ini menentukan bahawa Nilai NULL harus dianggap sebagai nilai terendah apabila mengisih dalam tertib menurun.

Kaedah Alternatif untuk PostgreSQL 8.2 dan Lebih Lama

Untuk PostgreSQL versi 8.2 dan lebih lama, atau untuk RDBMS yang tidak menyokong pilihan NULLS LAST, anda boleh menggunakan yang berikut penyelesaian:

ORDER BY (somevalue IS NULL), somevalue DESC

Ungkapan ini menggunakan fakta bahawa FALSE (yang mewakili NULL) diisih sebelum TRUE (yang mewakili nilai bukan NULL). Dengan menyemak sama ada medan beberapa nilai ialah NULL, kami mengalihkan nilai NULL dengan berkesan ke penghujung susunan isihan.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Nilai NULL ke Penghujung Jadual PostgreSQL?. 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