×

Làm thế nào để sử dụng CASE trong truy vấn?

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

  1. Cú pháp dạng tìm kiếm:
    CASE
        WHEN condition1 THEN result1
        WHEN condition2 THEN result2
        ...
        ELSE default_result
    END
    
  2. 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