Computer >> Máy Tính >  >> Lập trình >> SQL Server

Câu lệnh CASE trong SQL Server

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

Mô tả

Câu lệnh CASE được sử dụng để đặt các điều kiện nhánh trong SQL Server, tương tự như chức năng của câu lệnh IF-THEN-ELSE.

CASE có 2 định dạng:

  1. Hàm Simple CASE, còn được gọi là Simple CASE.
  2. Chức năng tìm kiếm CASE còn được gọi là CASE đã tìm kiếm.

Bên trong:

  1. CASE đơn giản là so sánh một biểu thức với một tập hợp các biểu thức đơn giản để xác định kết quả.
  2. CASE được tìm kiếm là để đánh giá một tập hợp các biểu thức Boolean để xác định kết quả.
  3. Cả hai định dạng đều hỗ trợ đối số ELSE (nhưng không bắt buộc).

Cú pháp

Để sử dụng câu lệnh CASE trong SQL Server, chúng tôi sử dụng cú pháp sau:

TRƯỜNG HỢP Đơn giản

 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 TRƯỜNG HỢP ĐƯỢC Tìm kiếm

 CASE 
WHEN dieukien_1 THEN ketqua_1
WHEN dieukien_2 THEN ketqua_2
.
WHEN dieukien_n THEN ketqua_n
ELSE ketqua_khac
END

Thông số :

  1. bieuthuc_dauvao:The biểu thức sẽ được so sánh với mỗi giá trị được cung cấp.
  2. bieuthuc_1, bieuthuc_2, bieuthuc_n: lần lượt các biểu thức sẽ được dùng để so sánh 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 hiện câu lệnh tiếp theo và không có phép so sánh nào nữa.
  3. dieukien_1, dieukien_2, dieukien_n :các điều kiện được xem xét, phê duyệt theo thứ tự được liệt kê. Khi một điều kiện được xác định là đúng, CASE trả về kết quả và không có điều kiện nào khác được đánh giá. Tất cả các điều kiện phải cùng một kiểu dữ liệu.
  4. ketqua_1, ketqua_2, ketqua_n :kết quả trả về sau khi xét điều kiện là true. Tất cả các giá trị phải cùng một kiểu dữ liệu.

Lưu ý :

  1. Nếu không phù hợp được tìm thấy cho TRUE, câu lệnh CASE sẽ trả về kết quả trong mệnh đề ELSE.
  2. Nếu không có mệnh đề ELSE và không có điều kiện TRUE thì câu lệnh CASE sẽ trả về NULL.
  3. Các đ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 trả về kết quả và không có điều kiện nào khác được đánh giá.
  4. CASE có thể được sử dụng trong các phiên bản SQL Server mới hơn:SQL Server 2017, SQL Server 2016, SQL Server 2014, SQL Server 2012, SQL Server 2008 R2, SQL Server 2008 và SQL Server 2005.

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:Trường hợp Đơn giản

Giả sử bạn cần kiểm tra phần của trang web TipsMake.com, dựa trên cột Mã của bảng chuyển đổi:

  1. Nếu Code ='01' là 'Laptrinh-TipsMake.com'.
  2. Nếu Code ='02' là 'Congnghe-TipsMake.com'.
  3. Nếu Code ='03' là 'Cuocsong-TipsMake.com'.
  4. Ngược lại, phần này không phải từ 1 đến 3 trong phần 'Khoahoc-TipsMake.com'.
 SELECT tenchuyenmuc, Code 
(CASE code
WHEN 01 THEN 'Laptrinh-TipsMake.com'
WHEN 02 THEN 'Congnghe-TipsMake.com'
WHEN 03 THEN 'Cuocsong-TipsMake.com'
ELSE 'Khoahoc-TipsMake.com'
END) AS Chuyenmuc
FROM chuyenmuc
ORDER BY Code

Kết quả trả về:

tenchuyenmuc Chuyenmuc SQL Server 01 Laptrinh-TipsMake.com Linux 02 Congnghe-TipsMake.com Python 01 Laptrinh-TipsMake.com JavaScript 01 Laptrinh-TipsMake.com Android 02 Congnghe-TipsMake.com Giai tri 03 Cuocsong-TipsMake.com Cuocsong-TipsMake.com Science Curve 04 Khoahoc-TipsMake.com Kham pha Khoa học 05 Khoahoc-TipsMake.com

Ví dụ 2:TRƯỜNG HỢP đã tìm kiếm

 SELECT tenchuyenmuc, 
CASE
WHEN code = 01 THEN 'Laptrinh-TipsMake.com'
WHEN code = 02 THEN 'Congnghe-TipsMake.com'
WHEN code = 03 THEN 'Cuocsong-TipsMake.com'
ELSE 'Khoahoc-TipsMake.com'
END
FROM chuyenmuc;

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

 SELECT tenchuyenmuc, Code 
(CASE code
WHEN 01 THEN 'Laptrinh-TipsMake.com'
WHEN 02 THEN 'Congnghe-TipsMake.com'
WHEN 03 THEN 'Cuocsong-TipsMake.com'
END) AS Chuyenmuc
FROM chuyenmuc
ORDER BY Code

Hoặc:

 SELECT tenchuyenmuc, 
CASE
WHEN code = 01 THEN 'Laptrinh-TipsMake.com'
WHEN code = 02 THEN 'Congnghe-TipsMake.com'
WHEN code = 03 THEN 'Cuocsong-TipsMake.com'
END
FROM chuyenmuc;

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

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

Đâ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-TipsMake.com'
WHEN code = 2 THEN 'Congnghe-TipsMake.com'
END
FROM chuyenmuc;

Hãy nhớ rằng các điều kiện được so sánh lần lượt 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ả ngay lập tức và không có điều kiện nào khác được đánh giá. Vì vậy, bạn cần phải cẩn thận khi chọn đơn hàng liệt kê các điều kiện của mình.

Xem các ví dụ cụ thể hơn về các hàm CASE trong SQL Server