Rumah > pangkalan data > tutorial mysql > Bagaimana Mengisih Nulls Last dalam PostgreSQL dengan Pengecualian Nilai Tertentu?

Bagaimana Mengisih Nulls Last dalam PostgreSQL dengan Pengecualian Nilai Tertentu?

Barbara Streisand
Lepaskan: 2024-12-29 11:44:18
asal
512 orang telah melayarinya

How to Sort Nulls Last in PostgreSQL with a Specific Value Exception?

Isih: Null After All but Special Exception

Apabila menyusun data dalam jadual pangkalan data dengan medan pengisihan pilihan, adalah perkara biasa untuk meletakkan nilai nol terakhir. Walau bagaimanapun, kadangkala pengecualian diperlukan untuk nilai tertentu. Dalam PostgreSQL, satu keperluan timbul untuk mengisih nilai nol selepas bukan nol, dengan -1 merupakan pengecualian yang sepatutnya datang selepas semua yang lain.

Untuk mencapai ini, penyelesaian mudah dibentangkan sendiri:

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

Postgres menganggap nilai boolean sebagai jenis, termasuk NULL. Susunan pengisihan lalainya ialah:

  • SALAH (0)
  • BENAR (1)
  • NULL

Dalam ungkapan (isih TIDAK BERBEZA DARI -1), keadaan menilai kepada FALSE untuk semua nilai kecuali -1, yang menilai kepada TRUE dan mengisih terakhir. Menggabungkan ini dengan pesanan sekunder dengan mengisih menyusun data seperti yang dikehendaki.

Pertanyaan alternatif yang menghasilkan hasil yang sama ialah:

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

Dengan menggunakan fungsi boolean Postgres dan menggabungkannya dengan ORDER OLEH klausa, ia menjadi mungkin untuk mengendalikan keperluan pengisihan yang kompleks dengan mudah.

Atas ialah kandungan terperinci Bagaimana Mengisih Nulls Last dalam PostgreSQL dengan Pengecualian 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