ฟังก์ชัน COALESCE() ใน MySQL คืนค่าแรกที่ไม่ใช่ NULL จากรายการพารามิเตอร์ ใช้ได้ดีเมื่อต้องการเลือกคอลัมน์สำรอง (Fallback) หากคอลัมน์หลักเป็น NULL
รูปแบบคำสั่ง
COALESCE(column1, column2, column3, ...)
ตัวอย่างการใช้งาน
สร้างตารางมีคอลัมน์ชื่อ 2 คอลัมน์ บางแถวมี NULL:
mysql> create table DemoTable1336 (FirstName varchar(20), SecondName varchar(20));
mysql> insert into DemoTable1336 values('John',NULL),(NULL,'Chris'),('David','Mike');
ข้อมูลต้นฉบับ:
+-----------+------------+ | FirstName | SecondName | +-----------+------------+ | John | NULL | | NULL | Chris | | David | Mike | +-----------+------------+
คำสั่งเลือกชื่อจาก FirstName ถ้าเป็น NULL ใช้ SecondName แทน
mysql> select coalesce(FirstName, SecondName) as AlternateName from DemoTable1336;
ผลลัพธ์
+---------------+ | AlternateName | +---------------+ | John | | Chris | | David | +---------------+
คำอธิบายเพิ่มเติม:
COALESCEเป็นมาตรฐาน ANSI SQL รองรับในทุก Database- MySQL มี
IFNULL(expr1, expr2)เฉพาะ 2 อาร์กิวเมนต์ (ไม่ใช่มาตรฐาน) - สามารถใส่ค่าคงที่เป็นค่าสุดท้ายได้:
COALESCE(col1, col2, 'Unknown') - ใช้งานได้กับทุกชนิดข้อมูล (String, Number, Date, etc.)