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

Gán thông báo tùy chỉnh theo điểm học sinh với CASE WHEN MySQL

Vấn đề: Phân loại điểm số thành 'Good Marks' / 'Not Good Marks'

Cột Marks lưu điểm. Cần cột Result hiển thị nhãn tùy theo ngưỡng.

Giải pháp: Biểu thức CASE trong SELECT

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

CREATE TABLE DemoTable (Marks INT);
INSERT INTO DemoTable VALUES (35), (65), (55), (39);

2. Truy vấn CASE

SELECT 
    CASE 
        WHEN Marks > 40 THEN 'Good Marks'
        ELSE 'Not Good Marks'
    END AS Result
FROM DemoTable;

3. Kết quả

+----------------+
| Result         |
+----------------+
| Not Good Marks |
| Good Marks     |
| Good Marks     |
| Not Good Marks |
+----------------+

Mở rộng: Nhiều ngưỡng (Grade A/B/C/D/F)

SELECT Marks,
       CASE
           WHEN Marks >= 90 THEN 'A'
           WHEN Marks >= 80 THEN 'B'
           WHEN Marks >= 70 THEN 'C'
           WHEN Marks >= 60 THEN 'D'
           ELSE 'F'
       END AS Grade
FROM DemoTable;

Lưu ý

  • CASE đánh giá theo thứ tự – điều kiện đầu tiên TRUE được chọn.
  • Có thể dùng dạng CASE Marks WHEN 100 THEN 'Perfect' ... END cho so sánh bằng.
  • Kết quả CASE có thể dùng trong GROUP BY, ORDER BY, UPDATE.