Giới thiệu về SQL CASE
Trong ngôn ngữ lập trình SQL, chức năng CASE được sử dụng để thực hiện các phép so sánh điều kiện và trả về kết quả tương ứng. Nó cung cấp khả năng kiểm tra nhiều điều kiện và thực hiện các hành động khác nhau dựa trên giá trị của những điều kiện đó, tương tự như câu lệnh IF...ELSE trong các ngôn ngữ lập trình khác.
Cú pháp của SQL CASE
Có hai cách để sử dụng CASE trong SQL: CASE đơn giản và CASE tìm kiếm.
1. CASE đơn giản
CASE column_name WHEN value1 THEN result1 WHEN value2 THEN result2 ... ELSE default_result END
2. CASE tìm kiếm
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE default_result END
Ví dụ về SQL CASE
Ví dụ 1: Sử dụng CASE đơn giản
Giả sử bạn có một bảng tên là employees với các cột id, name, và department_id. Bạn muốn phân loại nhân viên theo phòng ban của họ.
SELECT id, name, CASE department_id WHEN 1 THEN 'Kinh doanh' WHEN 2 THEN 'Kỹ thuật' WHEN 3 THEN 'HR' ELSE 'Khác' END AS department FROM employees;
Ví dụ 2: Sử dụng CASE tìm kiếm
Giả sử bạn muốn xác định mức lương của nhân viên dựa trên thâm niên làm việc. Bảng employees có thêm cột years_of_service.
SELECT id, name, years_of_service, CASE WHEN years_of_service < 1 THEN 'Mới' WHEN years_of_service BETWEEN 1 AND 3 THEN 'Nguyền' WHEN years_of_service > 3 THEN 'Cao cấp' ELSE 'Không xác định' END AS level FROM employees;
Ví dụ 3: Kết hợp CASE với các hàm tổng hợp
Bạn cũng có thể kết hợp CASE với các hàm tổng hợp như COUNT hoặc SUM.
SELECT department_id, COUNT(CASE WHEN salary > 50000 THEN 1 END) AS high_salary_count FROM employees GROUP BY department_id;
Kết luận
CASE là một công cụ mạnh mẽ trong SQL, cho phép bạn thực hiện các phép so sánh điều kiện và trả về kết quả linh hoạt. Việc hiểu và áp dụng đúng CASE có thể giúp bạn viết các câu truy vấn phức tạp và sáng tạo hơn trong việc truy xuất và xử lý dữ liệu.