Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

เรียงลำดับสองคอลัมน์รวมถึง NULL ด้วย COALESCE ใน MySQL

ใช้ COALESCE(col1, col2) ใน ORDER BY เลือกค่าที่ไม่ NULL ก่อนเพื่อเรียงตามลำดับเวลา

สร้างตารางตัวอย่าง

mysql> CREATE TABLE DemoTable (
    -> FirstName VARCHAR(100),
    -> LastName VARCHAR(100)
    -> );

เพิ่มข้อมูลตัวอย่าง (มี NULL)

mysql> INSERT INTO DemoTable VALUES('Sam', 'Brown');
mysql> INSERT INTO DemoTable VALUES(NULL, 'Smith');
mysql> INSERT INTO DemoTable VALUES('David', 'Taylor');
mysql> INSERT INTO DemoTable VALUES('Mike', NULL);

แสดงข้อมูล

mysql> SELECT * FROM DemoTable;

ผลลัพธ์:

+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| Sam       | Brown    |
| NULL      | Smith    |
| David     | Taylor   |
| Mike      | NULL     |
+-----------+----------+

คำสั่งเรียงด้วย COALESCE(FirstName, LastName)

mysql> SELECT * FROM DemoTable ORDER BY COALESCE(FirstName, LastName);

ผลลัพธ์:

+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| David     | Taylor   |
| Mike      | NULL     |
| Sam       | Brown    |
| NULL      | Smith    |
+-----------+----------+

คำอธิบาย: COALESCE(FirstName, LastName) คืนค่า FirstName ถ้าไม่ NULL ไม่งั้น LastName | ใช้ใน ORDER BY ได้ | David (D) < Mike (M) < Sam (S) < Smith (S) - เรียงตามตัวอักษร