การใช้ IF + LENGTH + COALESCE เลือกค่าสำรอง
ตรวจสอบ LENGTH(StudentFirstName) ถ้ามีค่า (ไม่ใช่ 0/NULL) ใช้ FirstName มิฉะนั้นใช้ LastName
ตัวอย่าง
mysql> create table DemoTable839(
StudentFirstName varchar(100),
StudentLastName varchar(100) );
Query OK, 0 rows affected (0.69 sec)
mysql> insert into DemoTable839 values('Chris', 'Brown');
mysql> insert into DemoTable839 values('', 'Taylor');
mysql> insert into DemoTable839 values(NULL, 'Taylor');
mysql> insert into DemoTable839 values('Adam', 'Smith');
คำสั่งหลัก
mysql> select if(length(StudentFirstName), StudentFirstName, StudentLastName) from DemoTable839;
ผลลัพธ์:
+---------------------------------------------------------------+
| if(length(StudentFirstName),StudentFirstName,StudentLastName) |
+---------------------------------------------------------------+
| Chris |
| Taylor |
| Taylor |
| Adam |
+---------------------------------------------------------------+
คำอธิบาย
LENGTH('')= 0 (FALSE)LENGTH(NULL)= NULL (FALSE)LENGTH('Chris')= 5 (TRUE)IF(TRUE, 'Chris', 'Brown')-> 'Chris'IF(FALSE, '', 'Taylor')-> 'Taylor'
วิธีที่เป็นมาตรฐานกว่า: COALESCE + NULLIF
SELECT COALESCE(NULLIF(TRIM(StudentFirstName), ''), StudentLastName) FROM DemoTable839;
TRIM()- ตัด SpaceNULLIF(x, '')- คืน NULL ถ้า x = ''COALESCE()- คืนค่าแรกที่ไม่ใช่ NULL
สรุป
ใช้ IF(LENGTH(col), col, fallback) หรือ COALESCE(NULLIF(TRIM(col), ''), fallback) เลือกค่าหลัก ไม่ใช่ใช้ค่าสำรอง