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

การใช้ฟังก์ชัน COALESCE ใน MySQL

COALESCE: คืนค่าแรกที่ไม่ใช่ NULL

ฟังก์ชัน COALESCE() จะตรวจสอบค่าแต่ละตัวตามลำดับ และคืนค่าตัวแรกที่ ไม่ใช่ NULL หากทุกค่าเป็น NULL จะคืน NULL

รูปแบบคำสั่ง

SELECT COALESCE(yourColumnName1, yourColumnName2, yourColumnName3, ..., N) AS anyVariableName
FROM yourTableName;

ตัวอย่างการสร้างตารางและข้อมูลทดสอบ

mysql> CREATE TABLE CoalesceDemo (
    -> Id INT,
    -> Name VARCHAR(100),
    -> Age INT,
    -> Address VARCHAR(100)
    -> );
Query OK, 0 rows affected (0.57 sec)

mysql> INSERT INTO CoalesceDemo VALUES(1, NULL, NULL, NULL);
mysql> INSERT INTO CoalesceDemo VALUES(NULL, 'Mike', NULL, NULL);
mysql> INSERT INTO CoalesceDemo VALUES(NULL, NULL, 23, NULL);
mysql> INSERT INTO CoalesceDemo VALUES(NULL, NULL, NULL, 'UK');
mysql> INSERT INTO CoalesceDemo VALUES(NULL, NULL, NULL, NULL);

ข้อมูลทั้งหมด

mysql> SELECT * FROM CoalesceDemo;
+------+------+------+---------+
| Id   | Name | Age  | Address |
+------+------+------+---------+
| 1    | NULL | NULL | NULL    |
| NULL | Mike | NULL | NULL    |
| NULL | NULL | 23   | NULL    |
| NULL | NULL | NULL | UK      |
| NULL | NULL | NULL | NULL    |
+------+------+------+---------+
5 rows in set (0.00 sec)

ใช้ COALESCE หาค่าแรกที่ไม่ใช่ NULL

mysql> SELECT COALESCE(Id, Name, Age, Address) AS FirstNotNullValue
    -> FROM CoalesceDemo;
+-------------------+
| FirstNotNullValue |
+-------------------+
| 1                 |
| Mike              |
| 23                |
| UK                |
| NULL              |
+-------------------+
5 rows in set (0.00 sec)

กรณีการใช้งานทั่วไป:

  • กำหนดค่า default เมื่อคอลัมน์เป็น NULL
  • รวมข้อมูลจากหลายคอลัมน์ที่อาจมีค่า NULL
  • แสดงข้อความแทนค่า NULL เช่น COALESCE(phone, 'N/A')