การจัดลำดับข้อมูลพร้อมวาง NULL และค่าว่างไว้ท้าย
ใช้ CASE ภายใน ORDER BY เพื่อกำหนดลำดับความสำคัญ: ค่าปกติ -> ค่าว่าง ('') -> NULL
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable1937 (Name VARCHAR(20));
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO DemoTable1937 VALUES('Chris');
mysql> INSERT INTO DemoTable1937 VALUES(NULL);
mysql> INSERT INTO DemoTable1937 VALUES('Adam');
mysql> INSERT INTO DemoTable1937 VALUES('John');
mysql> INSERT INTO DemoTable1937 VALUES('');
mysql> INSERT INTO DemoTable1937 VALUES(NULL);
mysql> INSERT INTO DemoTable1937 VALUES('Bob');
ข้อมูลก่อนเรียง
mysql> SELECT * FROM DemoTable1937;
+-------+
| Name |
+-------+
| Chris |
| NULL |
| Adam |
| John |
| |
| NULL |
| Bob |
+-------+
คำสั่ง SQL เรียง ASC วาง NULL/ค่าว่างท้าย
mysql> SELECT * FROM DemoTable1937
-> ORDER BY CASE
-> WHEN Name IS NULL THEN 100
-> WHEN Name = '' THEN 101
-> ELSE 103
-> END DESC,
-> Name ASC;
ผลลัพธ์:
+-------+
| Name |
+-------+
| Adam |
| Bob |
| Chris |
| John |
| |
| NULL |
| NULL |
+-------+
คำอธิบาย: CASE กำหนดค่าความสำคัญ: NULL=100, ว่าง=101, ปกติ=103 เรียง DESC ทำให้ค่าปกติ (103) อยู่บนสุด ตามด้วยค่าว่าง แล้ว NULL สุดท้าย ภายในกลุ่มเดียวกัน เรียงตาม Name ASC