Cú pháp SQL CASE

Câu lệnh CASE trong SQL cho phép bạn đánh giá một biểu thứctrả về giá trị khác nhau dựa trên kết quả của đánh giá đó. Nó hoạt động tương tự như câu lệnh if-else trong các ngôn ngữ lập trình khác.

case express

Cú pháp cơ bản:

CASE
  WHEN <condition1> THEN <result1>
  WHEN <condition2> THEN <result2>
  ...
  ELSE <default_result>
END

Giải thích:

  • CASE: Từ khóa bắt đầu câu lệnh.
  • WHEN <condition1> THEN <result1>: Kiểm tra điều kiện đầu tiên. Nếu điều kiện đúng, trả về kết quả tương ứng.
  • WHEN <condition2> THEN <result2>: Kiểm tra điều kiện thứ hai. Nếu điều kiện đúng, trả về kết quả tương ứng.
  • …: Lặp lại các mệnh đề WHEN cho các điều kiện khác.
  • ELSE <default_result>: Trả về giá trị mặc định nếu không có điều kiện nào được đáp ứng.
  • END: Kết thúc câu lệnh CASE.

Ví dụ:

--Chuyển đổi điểm chữ thành điểm số:
SELECT
  CASE
    WHEN Grade = 'A' THEN 4.0
    WHEN Grade = 'B' THEN 3.0
    WHEN Grade = 'C' THEN 2.0
    ELSE 0.0
  END AS GPA
FROM Students;

--Phân loại khách hàng theo doanh thu:
SELECT
  CASE
    WHEN TotalSales > 1000000 THEN 'VIP'
    WHEN TotalSales > 500000 THEN 'Gold'
    ELSE 'Silver'
  END AS CustomerType
FROM Customers;

--Lấy ngày hiện tại:
SELECT CASE WHEN DAY(GETDATE()) = 1 THEN 'Thứ Hai'
            ELSE 'Ngày ' + DAY(GETDATE()) END AS Today;

Lưu ý:

  • Thứ tự các mệnh đề WHEN rất quan trọng. Câu lệnh sẽ dừng sau khi tìm thấy điều kiện đầu tiên được đáp ứng.
  • Bạn có thể sử dụng nhiều mệnh đề WHEN để kiểm tra nhiều điều kiện.
  • Mệnh đề ELSE là tùy chọn. Nếu không có mệnh đề ELSE, câu lệnh sẽ trả về NULL nếu không có điều kiện nào được đáp ứng.

 

Datalinks.vn

Hello các bạn, tôi là Dương Nguyễn (DuoDBA), là người đang tập tành viết lách trên blog này. Mong muốn được chia sẻ kiến thức và kinh nghiệm về cơ sở dữ liệu với những người đam mê và quan tâm đến lĩnh vực này. #Tôi có tổ chức các khoá Coaching về #OracleDatabase và luyện thi #OCP thường xuyên, các bạn cần người đồng hành thì alo tôi nhé. Call/Zalo: 0765 871 888. Thanks you !.....
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest

0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận