ใช้ COALESCE() แปลง NULL เป็น 0 แล้วหาค่าสูงสุดด้วย GREATEST()
สร้างตารางและเพิ่มข้อมูล
mysql> create table DemoTable ( Value1 int, Value2 int, Value3 int ); Query OK, 0 rows affected (0.61 sec)
mysql> insert into DemoTable values(NULL,80,76); Query OK, 1 row affected (0.21 sec) mysql> insert into DemoTable values(NULL,NULL,100); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable values(56,NULL,45); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable values(56,120,90); Query OK, 1 row affected (0.21 sec)
คิวรี่หาค่าสูงสุดต่อแถว
mysql> select greatest(coalesce(Value1,0),coalesce(Value2,0),coalesce(Value3,0)) from DemoTable;
ผลลัพธ์
+--------------------------------------------------------------------+ | greatest(coalesce(Value1,0),coalesce(Value2,0),coalesce(Value3,0)) | +--------------------------------------------------------------------+ | 80 | | 100 | | 56 | | 120 | +--------------------------------------------------------------------+ 4 rows in set (0.00 sec)
หลักการ: COALESCE(col, 0) คืนค่าแรกที่ไม่ใช่ NULL (หากทั้งหมดเป็น NULL คืน 0) | GREATEST() หาค่าสูงสุดจากรายการค่า