Câu lệnh CASE trong SQL

Bởi Kiên Smart Data
0 Nhận xét
Case trong SQL

CASE là một câu lệnh cho phép bạn tạo ra các điều kiện rẽ nhánh trong khi viết query trong SQL. Nếu giá trị trả về từ query khớp với biểu thức mong muốn của bạn thì kết quả tương ứng với biểu thức đó sẽ được trả về ngay. Bài viết này SmartData sẽ hướng dẫn các bạn cách sử dụng câu lệnh CASE trong SQL.

Cú pháp của câu lệnh

 CASE 
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result
END;

Cú pháp của câu lệnh khá đơn giản và tường minh, gần giống với câu lệnh IF ELSE

  • WHEN: Cho phép bạn thiết lập biểu thức mong muốn
  • THEN resul1: Cho phép bạn đưa ra kết quả mong muốn khi biểu thức đầu vào được khớp
  • ELSE result: Nếu đã chạy quả hết các biểu thức mong muốn nhưng không tìm được biểu thức nào phù hợp thì sẽ đưa ra kết quả này.

Ví dụ CASE trong SQL

Giả sử ta cần thêm một cột Note trong truy vấn để ghi chú lại các đơn hàng nào có số lượng sản phẩm nhiều hơn 2, nhỏ hơn 2 hoặc bằng 2. Ta có thể làm như sau:

SELECT 
`Mã đơn hàng`,
`Số lượng` ,
CASE
WHEN `Số lượng` > 2 THEN
'Số lượng lớn hơn 2'
WHEN `Số lượng` = 2 THEN
'Số lượng bằng 2' ELSE 'Số lượng < 2'
END as "Note"
FROM
orders;

Kết quả trả về như sau:

Kết quả của câu lệnh CASE

Bạn cũng có thể gộp nhiều điều kiện trong câu lệnh WHEN. Ví dụ chúng ta cần kiểm tra các đơn hàng có số lượng sản phẩm lớn hơn 10 và tổng cân nặng lớn hơn 3kg thì được coi là lỗ, ta có thể truy vấn như sau:

SELECT 
`Mã đơn hàng`,
CASE
WHEN `Số lượng` > 10 AND `Tổng cân nặng` > 1 THEN 'Lỗ'
ELSE 'Lãi'
END AS "Note"
FROM
orders;

Kết quả như sau:

Kết quả của câu lệnh CASE với điều kiện AND

Tổng kết

Bài viết trên SmartData giới thiệu cho các bạn công dụng, cú pháp và cách sử dụng mệnh đề CASE trong SQL.

Nếu bạn là newbie có thể tham khảo bài viết này để tìm hiểu lộ trình học DA trong 6 tháng của SmartData

Nếu bạn thấy bài viết hay và hữu ích, bạn có thể tham gia các kênh sau của SmartData để nhận được nhiều hơn nữa:

Bài viết liên quan

Để lại nhận xét

Copyright @2022 – Bản quyền thuộc Học viện dữ lệu Smart Data