Home » Database Testing » Sử dụng CASE WHEN để viết điều kiện trong SQL

Sử dụng CASE WHEN để viết điều kiện trong SQL

Update: 30/09/2024

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:

StudentIDNameScore
1John85
2Jane75
3Mike90
4Sarah60

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ả:

NameScoreGrade
John85Giỏi
Jane75Khá
Mike90Giỏi
Sarah60Khá

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?

  1. 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.
  2. 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.
  3. 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.