Sử dụng CASE WHEN để viết điều kiện trong SQL
Chào mừng bạn đến với “Tôi đi tét dạo”! Hôm nay, chúng ta sẽ cùng khám phá một công cụ rất hữu ích trong SQL: CASE WHEN. Nếu bạn đã từng cảm thấy chật vật khi phải viết các điều kiện trong câu lệnh SQL, thì đây chính là bài viết dành cho bạn! Hãy chuẩn bị cho một hành trình thú vị qua thế giới điều kiện và logic trong SQL nhé!
CASE WHEN là gì?
CASE WHEN là một cấu trúc điều kiện trong SQL cho phép bạn thực hiện nhiều phép kiểm tra khác nhau và trả về giá trị tương ứng tùy thuộc vào kết quả của những phép kiểm tra đó. 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ơ bản của CASE WHEN
Cú pháp cơ bản của CASE WHEN
trong SQL như sau:
SELECT column1,
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE result_default
END AS new_column
FROM table_name;
Ví dụ đơn giản về CASE WHEN
Giả sử bạn có bảng Students
với cấu trúc như sau:
StudentID | Name | Score |
---|---|---|
1 | John | 85 |
2 | Jane | 75 |
3 | Mike | 90 |
4 | Sarah | 60 |
Nếu bạn muốn phân loại học sinh theo điểm số của họ, bạn có thể sử dụng CASE WHEN
như sau:
SELECT Name, Score,
CASE
WHEN Score >= 80 THEN 'Giỏi'
WHEN Score >= 60 THEN 'Khá'
ELSE 'Trung bình'
END AS Grade
FROM Students;
Kết quả:
Name | Score | Grade |
---|---|---|
John | 85 | Giỏi |
Jane | 75 | Khá |
Mike | 90 | Giỏi |
Sarah | 60 | Khá |
Từ ví dụ trên, bạn có thể thấy rằng CASE WHEN
giúp phân loại điểm số của học sinh một cách dễ dàng.
Ứng dụng của CASE WHEN
1. Trong câu lệnh SELECT
Như đã đề cập, CASE WHEN
có thể được sử dụng để tính toán các giá trị dựa trên điều kiện trong câu lệnh SELECT
.
2. Trong câu lệnh ORDER BY
Bạn cũng có thể sử dụng CASE WHEN
trong câu lệnh ORDER BY
để sắp xếp dữ liệu theo điều kiện.
SELECT Name, Score
FROM Students
ORDER BY
CASE
WHEN Score >= 80 THEN 1
WHEN Score >= 60 THEN 2
ELSE 3
END;
3. Trong câu lệnh UPDATE
Bạn có thể sử dụng CASE WHEN
để cập nhật dữ liệu theo điều kiện.
UPDATE Students
SET Grade =
CASE
WHEN Score >= 80 THEN 'Giỏi'
WHEN Score >= 60 THEN 'Khá'
ELSE 'Trung bình'
END;
Lưu ý khi sử dụng CASE WHEN
- Thứ tự điều kiện: Khi viết nhiều điều kiện, thứ tự các điều kiện rất quan trọng. SQL sẽ kiểm tra từ trên xuống dưới và dừng lại ngay khi tìm thấy điều kiện đúng.
- Kết thúc bằng ELSE: Nếu bạn không chỉ định
ELSE
, SQL sẽ trả vềNULL
nếu không có điều kiện nào khớp.
Tại sao nên sử dụng CASE WHEN?
- Giảm thiểu mã lệnh:
CASE WHEN
giúp bạn viết mã ngắn gọn và dễ hiểu hơn, đặc biệt khi xử lý nhiều điều kiện phức tạp. - Tăng tính linh hoạt: Bạn có thể sử dụng
CASE WHEN
để tính toán các giá trị trong nhiều tình huống khác nhau mà không cần viết nhiều truy vấn riêng biệt. - Thúc đẩy khả năng tái sử dụng: Bằng cách sử dụng
CASE WHEN
, bạn có thể tái sử dụng logic điều kiện trong nhiều truy vấn khác nhau.
Tổng kết
Hôm nay, chúng ta đã cùng nhau tìm hiểu về CASE WHEN và cách nó có thể giúp bạn viết điều kiện trong SQL một cách hiệu quả. Hy vọng bạn đã cảm thấy dễ dàng hơn khi làm việc với điều kiện và có thêm nhiều ý tưởng để áp dụng vào dự án của mình.
Nếu bạn có bất kỳ câu hỏi hay thắc mắc nào, đừng ngần ngại để lại ý kiến bên dưới nhé! Và đừng quên quay lại với “Tôi đi tét dạo” trong những bài viết tiếp theo để tìm hiểu thêm về SQL nâng cao và những khái niệm thú vị khác.