Câu lệnh CASE WHEN trong SQL Server

Bài viết này sẽ hướng dẫn chi tiết cho bạn cách sử dụng hàm xử lý câu lệnh CASE WHEN trong SQL Server với cú pháp và những ví dụ cụ thể để dễ hình dung và nắm bắt hàm tốt hơn.

CÂU LỆNH CASE WHEN TRONG SQL

Câu lệnh CASE đi qua các điều kiện và trả về một giá trị khi điều kiện đầu tiên được đáp ứng (giống như câu lệnh if-then-else). Vì vậy, khi một điều kiện là đúng, nó sẽ dừng đọc và trả về kết quả. Nếu không có điều kiện nào đúng, nó sẽ trả về giá trị trong mệnh đề ELSE.

Nếu không có phần ELSE và không có điều kiện nào là đúng, nó sẽ trả về NULL.

Câu lệnh CASE dùng để thiết lập điều kiện rẽ nhánh trong SQL Server, tương tự chức năng của câu lệnh IF-THEN-ELSE.

CASE có 2 định dạng:

  • Hàm CASE đơn giản hay còn gọi là Simple CASE.
  • Hàm CASE tìm kiếm hay còn gọi là Searched CASE.

Trong đó:

  • Simple CASE là so sánh một biểu thức với một bộ các biểu thức đơn giản để xác định kết quả.
  • Searched CASE là đánh giá một bộ các biểu thức Boolean để xác định kết quả.
  • Cả 2 định dạng trên đều hỗ trợ đối số ELSE (nhưng không bắt buộc).
Câu lệnh Case When Trong SQL
Câu lệnh Case When Trong SQL

Cú pháp

Để sử dụng câu lệnh CASE trong SQL Server, ta dùng cú pháp như sau:

Simple CASE

CASE bieuthuc_dauvao

WHEN bieuthuc_1 THEN ketqua_1

WHEN bieuthuc_2 THEN ketqua_2

WHEN bieuthuc_n THEN ketqua_n

ELSE ketqua_khac

END

Hoặc Searched CASE

CASE

WHEN dieukien_1 THEN ketqua_1

WHEN dieukien_2 THEN ketqua_2

WHEN dieukien_n THEN ketqua_n

ELSE ketqua_khac

END

Tham số:

  • bieuthuc_dauvao: biểu thức sẽ được so sánh với từng giá trị được cung cấp.
  • bieuthuc_1, bieuthuc_2, bieuthuc_n: các biểu thức sẽ được sử dụng để so sánh lần lượt với biểu thức đầu vào. Khi một biểu thức khớp với bieuthu_dauvao, CASE sẽ thực thi các câu lệnh tiếp đó và không so sánh thêm nữa.
  • dieukien_1, dieukien_2, dieukien_n: các điều kiện được xét, duyệt theo thứ tự liệt kê. Khi một điều kiện được xác định là đúng, CASE sẽ trả về kết quả và không đánh giá các điều kiện tiếp theo nữa. Tất cả các điều kiện phải là cùng một kiểu dữ liệu.
  • ketqua_1, ketqua_2, ketqua_n: kết quả trả về sau khi xét điều kiện là đúng. Tất cả các giá trị phải là cùng một kiểu dữ liệu.

Lưu ý:

  • Nếu không tìm thấy bieuthuc hoặc dieukien nào là TRUE thì câu lệnh CASE sẽ trả về kết quả trong mệnh đề ELSE.
  • Nếu không có mệnh đề ELSE đồng thời không có điều kiện nào là TRUE thì câu lệnh CASE sẽ trả về NULL.

Điều kiện được đánh giá theo thứ tự được liệt kê. Khi một điều kiện được xác định là đúng, câu lệnh CASE sẽ trả về kết quả và không đánh giá các điều kiện tiếp theo nữa.

CASE có thể được sử dụng trong các phiên bản sau của SQL Server: SQL Server 2017, SQL Server 2016, SQL

Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008, SQL Server 2005.

Câu lệnh CASE WHEN trong SQL Server

Ví dụ

Hãy xem và khám phá một số ví dụ về câu lệnh CASE trong SQL Server.

Ví dụ 1: Simple CASE

Giả sử bạn cần kiểm tra chuyên mục của website Quantrimang.com, dựa vào cột Code (mã) của bảng chuyenmuc:

  • Nếu Code = ‘01’ là ‘Laptrinh-Quantrimang.com’.
  • Nếu Code = ‘02’ là ‘Congnghe-Quantrimang.com’.
  • Nếu Code = ‘03’ là ‘Cuocsong-Quantrimang.com’.

Ngược lại, tức là không thuộc từ 1 đến 3 thì ở chuyên mục ‘Khoahoc-Quantrimang.com’.SELECT tenchuyenmuc, Code

WHEN 01 THEN ‘Laptrinh-Quantrimang.com’

WHEN 02 THEN ‘Congnghe-Quantrimang.com’

WHEN 03 THEN ‘Cuocsong-Quantrimang.com’

ELSE ‘Khoahoc-Quantrimang.com’

END) AS Chuyenmuc

FROM chuyenmuc

ORDER BY Code

Ví dụ 2: Searched CASE

SELECT tenchuyenmuc,

CASE

WHEN code = 01 THEN ‘Laptrinh-Quantrimang.com’

WHEN code = 02 THEN ‘Congnghe-Quantrimang.com’

WHEN code = 03 THEN ‘Cuocsong-Quantrimang.com’

ELSE ‘Khoahoc-Quantrimang.com’

END

FROM chuyenmuc;

Bạn cũng có thể không sử dụng điều kiện ELSE như này:

SELECT tenchuyenmuc, Code

WHEN 01 THEN ‘Laptrinh-Quantrimang.com’

WHEN 02 THEN ‘Congnghe-Quantrimang.com’

WHEN 03 THEN ‘Cuocsong-Quantrimang.com’

END) AS Chuyenmuc

FROM chuyenmuc

ORDER BY Code

Hoặc:

SELECT tenchuyenmuc,

CASE

WHEN code = 01 THEN ‘Laptrinh-Quantrimang.com’

WHEN code = 02 THEN ‘Congnghe-Quantrimang.com’

WHEN code = 03 THEN ‘Cuocsong-Quantrimang.com’

END

FROM chuyenmuc;

Khi mệnh đề ELSE được bỏ qua, nếu không có điều kiện nào là đúng, câu lệnh CASE sẽ trả về NULL.

Ví dụ 3: So sánh 2 điều kiện

Dưới đây là một ví dụ minh họa cách sử dụng câu lệnh CASE để so sánh các điều kiện khác nhau:

SELECT

CASE

WHEN code < 2 THEN ‘Laptrinh-Quantrimang.com’

WHEN code = 2 THEN ‘Congnghe-Quantrimang.com’

END

FROM chuyenmuc;

Câu lệnh CASE WHEN trong SQL Server

Các tiện ích nổi bật của dịch vụ Thiết Kế Web Bán Hàng trọn gói tại ATPWeb:

  • Website bán hàng ATPWeb giúp tối ưu hiệu quả SEO: Giúp bạn có một Website chuẩn SEO, khách hàng có thể tìm bạn trên Google một cách dễ dàng nhất.
  • 500+ giao diện Responsive đẹp mắt, tùy biến cao: Giúp bạn có một Website thân thiện, dù là bất cứ thiết bị nào Website sẽ cho họ một trải nghiệm mua hàng hấp dẫn.
  • Website tốc độ cao và băng thông không giới hạn: Giúp bạn có một Website tốc độ cao, khách hàng của bạn sẽ được trải nghiệm tốc độ load của một trang báo.
  • Dịch vụ cài đặt dễ dàng và nhanh chóng.
  • Tiết kiệm chi phí: Khi sử dụng dịch vụ thiết kế web trọn gói của ATPWeb bạn sẽ nhận được nhiều ưu đãi như:Kho bài viết, tài liệu, cẩm nang và khóa học miễn phí, khuyến mãi tùy theo từng gói dịch vụ, miễn phí các dịch vụ phát sinh và nhiều lợi ích khác.
  • An toàn, bảo mật tuyệt đối: Website của bạn sẽ được được bảo vệ tuyệt đối với hàng rào “https://” và “SSL” tiêu chuẩn quốc tế giúp tránh được sự tấn công của virus, hacker.
  • Hỗ trợ tư vấn Marketing & bán hàng: Cung cấp cho Khách hàng những tư duy, kiến thức về Marketing và cách kinh doanh ngay trên Website.

Hy vọng rằng bài viết trên đã giúp các bạn biết thêm nhiều kiến thức hữu ích.

Nếu như bạn đang có nhu cầu xây dựng một Website phù hợp với thương hiệu của mình, nhưng vẫn chưa tìm được giải pháp tối ưu nhất thì hãy liên hệ ngay với chúng tôi trong hôm nay để được tư vấn miễn phí nhé!

THÔNG TIN LIÊN HỆ

0
Chia Sẻ
2
Lượt Xem

Bình luận về chủ đề post

ƯU ĐÃI CHO CÁ NHÂN KINH DOANH & DOANH NGHIỆP MÙA CÔ VI

*Áp dụng đến hết 31/5

GIẢM SỐC

Giải Pháp Kinh Doanh Đa kênh

TỚI 50%

Ngày
Giờ
Phút
Giây