มีวิธีกับ PostgreSQL ในการจัดเรียงแถวที่มีNULL
ค่าในเขตข้อมูลไปยังจุดสิ้นสุดของตารางที่เลือกหรือไม่?
ชอบ:
SELECT * FROM table ORDER BY somevalue, PUT_NULL_TO_END
มีวิธีกับ PostgreSQL ในการจัดเรียงแถวที่มีNULL
ค่าในเขตข้อมูลไปยังจุดสิ้นสุดของตารางที่เลือกหรือไม่?
ชอบ:
SELECT * FROM table ORDER BY somevalue, PUT_NULL_TO_END
คำตอบ:
แรกของทุกค่าเป็นศูนย์จะเรียงสุดท้ายในการเริ่มต้นจากน้อยไปมากเพื่อ คุณไม่ต้องทำอะไรเพิ่ม
ปัญหานี้ใช้กับลำดับจากมากไปหาน้อยซึ่งเป็นค่าผกผันที่สมบูรณ์แบบดังนั้นจึงเรียงลำดับค่า NULL ก่อน แก้ปัญหา @Mosty ออกมาชี้ถูกนำมาใช้กับPostgreSQL 8.3 :
ORDER BY somevalue DESC NULLS LAST
สำหรับPostgreSQL 8.2และเก่ากว่าหรือ RDBMS อื่น ๆ ที่ไม่มีคุณลักษณะ SQL มาตรฐานนี้คุณสามารถแทนที่:
ORDER BY (somevalue IS NULL), somevalue DESC
FALSE
เรียงลำดับก่อนหน้าTRUE
ดังนั้นค่า NULL จึงเป็นค่าสุดท้ายเช่นเดียวกับในตัวอย่างด้านบน
คำตอบในภายหลังที่เกี่ยวข้อง:
สิ่งนี้ทำให้เคล็ดลับหรือไม่?
ORDER BY somevalue DESC NULLS LAST
นำมาจาก: http://www.postgresql.org/docs/9.0/static/sql-select.html