Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Viết CASE WHEN trong MySQL để gán thông báo tùy chỉnh theo điểm học sinh

Vấn đề: Phân loại điểm số thành thông báo văn bản

Cần hiển thị cột kết quả mô tả ("Good Marks" / "Not Good Marks") dựa trên giá trị cột StudentMarks.

Giải pháp: Sử dụng biểu thức CASE

Cú pháp: CASE WHEN condition THEN result ELSE other_result END.

1. Tạo bảng và dữ liệu

CREATE TABLE DemoTable (
    StudentName VARCHAR(20),
    StudentMarks INT
);

INSERT INTO DemoTable VALUES
('Chris', 59), ('David', 89), ('Sam', 94), ('Mike', 75), ('Carol', 69);

2. Truy vấn với CASE

SELECT StudentName,
       CASE 
           WHEN StudentMarks > 70 THEN 'Good Marks'
           ELSE 'Not Good Marks'
       END AS Result
FROM DemoTable;

3. Kết quả

+-------------+----------------+
| StudentName | Result         |
+-------------+----------------+
| Chris       | Not Good Marks |
| David       | Good Marks     |
| Sam         | Good Marks     |
| Mike        | Good Marks     |
| Carol       | Not Good Marks |
+-------------+----------------+

Mở rộng: Nhiều điều kiện (ELSE IF)

SELECT StudentName,
       CASE
           WHEN StudentMarks >= 90 THEN 'Excellent'
           WHEN StudentMarks >= 70 THEN 'Good'
           WHEN StudentMarks >= 50 THEN 'Average'
           ELSE 'Needs Improvement'
       END AS Grade
FROM DemoTable;

Lưu ý

  • CASE đánh giá theo thứ tự – điều kiện đầu tiên khớp sẽ được chọn.
  • Có thể dùng dạng CASE column WHEN value1 THEN ... WHEN value2 THEN ... END cho so sánh bằng đơn giản.
  • Kết quả CASE có thể dùng trong ORDER BY, GROUP BY, UPDATE, v.v.