Trong MySQL, CASE
là một cấu trúc điều kiện (tương tự như if-else hoặc switch-case trong các ngôn ngữ lập trình) cho phép bạn thực hiện các lựa chọn logic trong truy vấn SQL. Cấu trúc CASE
có thể được sử dụng trong câu lệnh SELECT
, INSERT
, UPDATE
, và DELETE
, và cung cấp một cách linh hoạt để thay đổi dữ liệu dựa trên các điều kiện cụ thể.
Cú pháp cơ bản của CASE
- Cú pháp dạng tìm kiếm:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END
- Cú pháp dạng đơn giản:
CASE expression WHEN value1 THEN result1 WHEN value2 THEN result2 ... ELSE default_result END
Ví dụ sử dụng CASE
Ví dụ 1: Thay đổi giá trị dựa trên điều kiện.
Giả sử bạn muốn "dịch" điểm số thành xếp loại:
SELECT
ten,
diem,
CASE
WHEN diem >= 9 THEN 'Xuất sắc'
WHEN diem >= 7 THEN 'Khá'
WHEN diem >= 5 THEN 'Trung bình'
ELSE 'Yếu'
END AS xep_loai
FROM
sinh_vien;
Trong ví dụ này, CASE
sẽ kiểm tra mỗi điểm của sinh viên và trả về một xếp loại tương ứng.
Ví dụ 2: Sử dụng trong câu lệnh UPDATE
để cập nhật dữ liệu dựa trên điều kiện.
Giả sử bạn muốn tăng lương cho nhân viên dựa trên vị trí của họ:
UPDATE nhan_vien
SET luong = CASE
WHEN chuc_vu = 'Quản lý' THEN luong * 1.1
WHEN chuc_vu = 'Nhân viên' THEN luong * 1.05
ELSE luong
END;
Ở đây, lương của quản lý sẽ được tăng 10%, nhân viên được tăng 5%, và các vị trí khác giữ nguyên.
CASE
là công cụ mạnh mẽ và linh hoạt giúp bạn thực hiện các phép toán và logic phức tạp ngay trong câu lệnh SQL mà không cần phải xử lý logic ở tầng ứng dụng.
Comments