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

COALESCE() คล้าย IF-THEN-ELSE อย่างไร

COALESCE() คืนค่า Non-NULL แรก

เทียบเท่ากับโครงสร้าง IF-THEN-ELSE ต่อเนื่อง

IF-THEN-ELSE เทียบเท่า

IF value1 IS NOT NULL THEN output = value1;
ELSIF value2 IS NOT NULL THEN output = value2;
ELSIF value3 IS NOT NULL THEN output = value3;
...
ELSIF valueN IS NOT NULL THEN output = valueN;
ELSE output = NULL;
END IF;

ตัวอย่าง COALESCE

mysql> SELECT COALESCE(NULL, NULL, NULL, 'Ram', 'Aarav', NULL);
+--------------------------------------------------+
| COALESCE(NULL, NULL, NULL, 'Ram', 'Aarav', NULL) |
+--------------------------------------------------+
| Ram                                              |
+--------------------------------------------------+

การทำงาน

  1. ตรวจ value1 = NULL → ข้าม
  2. ตรวจ value2 = NULL → ข้าม
  3. ตรวจ value3 = NULL → ข้าม
  4. ตรวจ value4 = 'Ram' → ไม่ใช่ NULL คืน 'Ram' ทันที
  5. ไม่ตรวจ value5, value6 แล้ว

ประโยชน์

  • เขียนสั้นกว่า CASE/IF หลายบรรทัด
  • อ่านง่าย สำหรับ Default value / Fallback
  • รองรับอาร์กิวเมนต์ไม่จำกัดจำนวน