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')