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

แทนที่ตัวเลขด้วยข้อความในชุดผลลัพธ์ MySQL ด้วย CASE WHEN

บทนำ

การแสดงผลค่า Boolean หรือตัวเลขเป็นข้อความที่อ่านง่าย (เช่น 1 → 'Married', 0 → 'Not Married') สามารถทำได้ด้วยคำสั่ง CASE WHEN

ตัวอย่างการสร้างตารางและเพิ่มข้อมูล

mysql> CREATE TABLE DemoTable (
    -> IsMarried BOOLEAN
    -> );
Query OK, 0 rows affected (0.76 sec)
mysql> INSERT INTO DemoTable VALUES(TRUE);
mysql> INSERT INTO DemoTable VALUES(FALSE);
mysql> INSERT INTO DemoTable VALUES(FALSE);
mysql> INSERT INTO DemoTable VALUES(TRUE);

แสดงข้อมูลทั้งหมด (ค่าตัวเลข 1/0)

mysql> SELECT * FROM DemoTable;

ผลลัพธ์

+-----------+
| IsMarried |
+-----------+
| 1         |
| 0         |
| 0         |
| 1         |
+-----------+
4 rows in set (0.00 sec)

คำสั่งแทนที่ตัวเลขด้วยข้อความ

mysql> SELECT IsMarried,
    -> CASE IsMarried
    ->     WHEN 1 THEN 'Married'
    ->     ELSE 'Not Married'
    -> END AS Status
    -> FROM DemoTable;

ผลลัพธ์

+-----------+-------------+
| IsMarried | Status      |
+-----------+-------------+
| 1         | Married     |
| 0         | Not Married |
| 0         | Not Married |
| 1         | Married     |
+-----------+-------------+
4 rows in set (0.00 sec)

รูปแบบ CASE WHEN ทั้งสองแบบ

1. Simple CASE (เปรียบเทียบค่าเดียว)

CASE column
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ELSE defaultResult
END

2. Searched CASE (เงื่อนไขซับซ้อน)

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ELSE defaultResult
END

ตัวอย่าง Searched CASE

SELECT Score,
    CASE
        WHEN Score >= 80 THEN 'A'
        WHEN Score >= 70 THEN 'B'
        WHEN Score >= 60 THEN 'C'
        ELSE 'F'
    END AS Grade
FROM Students;