Lệnh CASE WHEN Trong SQL - Chức Năng, Cú Pháp Và Ví Dụ | KTPM
Có thể bạn quan tâm
CASE WHEN trong SQL là câu lệnh có tính ứng dụng cao, phát huy tác dụng trong nhiều trường hợp khác nhau. Bài viết sau đây của Kiến Thức Phần Mềm sẽ giúp bạn hiểu rõ hơn chức năng của câu lệnh CASE, cú pháp chính xác của câu lệnh này và ví dụ cụ thể.
Giới thiệu chung về lệnh CASE WHEN trong SQL
CASE là câu lệnh trong SQL có tác dụng thiết lập điều kiện rẽ nhánh. Nhìn chung, câu lệnh CASE khá tương đồng với lệnh IF trong SQL (IF-THEN-ELSE) về mặt chức năng.
Có hai định dạng hàm CASE đó là:
- Simple CASE: Hàm CASE dạng đơn giản, có chức năng đối chiếu giữa một biểu thức cụ thể và một bộ nhưng biểu thức đơn giản, từ đó giúp xác định kết quả
- Searched CASE: Hàm CASE dạng tìm kiếm, được dùng để đánh giá 1 bộ những biểu thức Boolean, từ đó giúp xác định kết quả.
Cả hai định dạng hàm CASE này đều có hỗ trợ ELSE là đối số (tuy nhiên không bắt buộc)
Xem thêm: Giới thiệu các kiểu dữ liệu trong MySQL
Cú pháp của câu lệnh CASE WHEN trong SQL
Hàm 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
Hàm 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ố của cú pháp
Trong hai cú pháp của câu lệnh Case When SQL trên, có những tham số sau mà bạn cần lưu ý:
- bieuthuc_dauvao: Là biểu thức dùng để đối chiếu với mỗi giá trị được cung cấp
- bieuthuc_1, bieuthuc_2,… bieuthuc_n: Đây là những biểu thức lần lượt được dùng để đối chiếu với biểu thức đầu vào. Khi hệ thống nhận thấy có sự ăn khớp giữa biểu thức đầu vào và những biểu thức này, CASE sẽ dừng so sánh và thực hiện những câu lệnh kế tiếp.
- dieukien_1, dieukien_2, dieukien_n: Những điều kiện này sẽ được xác định lần lượt dựa trên thứ tự liệt kê. Trong trường hợp hệ thống xét duyệt và xác định một điều kiện là đúng (TRUE), lệnh CASE sẽ dừng đánh giá những điều kiện sau đó và hiển thị kết quả. Vì vậy việc lựa chọn thứ tự liệt kê đối với các điều kiện phải được thực hiện cẩn thận. Lưu ý toàn bộ các điều kiện phải được đặt ở cùng một kiểu dữ liệu.
- ketqua_1, ketqua_2, ketqua_n: Đây là kết quả được hiển thị sau khi điều kiện được xét là đúng. Toàn bộ các giá trị tương ứng với kết quả phải thuộc cùng một kiểu dữ liệu.
Những lưu ý khi sử dụng CASE WHEN trong SQL
- Nếu hệ thống không thể tìm được điều kiện hoặc biểu thức nào được xác định là TRUE, kết quả của câu lệnh CASE sẽ được trả về trong mệnh đề ELSE.
- Trong trường hợp không có điều kiện đúng và cũng không tồn tại mệnh đề ELSE, câu lệnh CASE sẽ hiển thị kết quả là NULL.
- Câu lệnh CASE được hỗ trợ trên các phiên bản SQL Server sau đây: SQL Server 2005, SQL Server 2008, SQL Server 2008 R2, SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017…
Tìm hiểu thêm: Lệnh INSERT INTO trong SQL, INSERT INTO SELECT chèn dữ liệu vào bảng
Những ví dụ về câu lệnh CASE trong SQL
Ví dụ về hàm Simple CASE
Giả sử nếu bạn đang muốn kiểm tra các chuyên mục của trang web kienthucphanmem.com. Bạn có thể dựa trên cột mã Code thuộc bảng chuyenmuc. Cụ thể như sau:
- Code = ‘01’ tương ứng với ‘Phanmem-Kienthucphanmem.com’
- Code = ‘02’ tương ứng với ‘Marketing-Kienthucphanmem.com’
- Code = ‘03’ tương ứng với ‘Games-Kienthucphanmem.com’
- Nếu code không nằm trong khoảng từ 1 đến 3 tức là thuộc chuyên mục ‘Reviews-Kienthucphanmem.com’
Sau đây là cú pháp của lệnh SQL Case When mà bạn cần nhập:
SELECT tenchuyenmuc, Code
(CASE code
WHEN 01 THEN ‘Phanmem-Kienthucphanmem.com’
WHEN 02 THEN ‘Marketing-Kienthucphanmem.com’
WHEN 03 THEN ‘Games-Kienthucphanmem.com’
ELSE ‘Reviews-Kienthucphanmem.com’
END) AS Chuyenmuc
FROM chuyenmuc
ORDER BY Code
Ví dụ về hàm Searched CASE
Trường hợp 1
SELECT tenchuyenmuc,
CASE
WHEN code = 01 THEN ‘Phanmem-Kienthucphanmem.com’
WHEN code = 02 THEN ‘Marketing-Kienthucphanmem.com’
WHEN code = 03 THEN ‘Games-Kienthucphanmem.com’
ELSE ‘Reviews-Kienthucphanmem.com’
END
FROM chuyenmuc;
Trường hợp 2
SELECT tenchuyenmuc, Code
(CASE code
WHEN 01 THEN ‘Phanmem-Kienthucphanmem.com’
WHEN 02 THEN ‘Marketing-Kienthucphanmem.com’
WHEN 03 THEN ‘Games-Kienthucphanmem.com’
END) AS Chuyenmuc
FROM chuyenmuc
ORDER BY Code
Trường hợp 3
SELECT tenchuyenmuc,
CASE
WHEN code = 01 THEN ‘Phanmem-Kienthucphanmem.com’
WHEN code = 02 THEN ‘Marketing-Kienthucphanmem.com’
WHEN code = 03 THEN ‘Games-Kienthucphanmem.com’
END
FROM chuyenmuc;
Lưu ý: Trong các trường hợp 2 và 3 của câu lệnh CASE WHEN trong SQL. Khi bỏ qua mệnh đề ELSE và không phát hiện được điều kiện TRUE, câu lệnh CASE sẽ có kết quả là NULL
Ví dụ về so sánh 2 điều kiện
SELECT
CASE
WHEN code < 2 THEN ‘Phanmem-Kienthucphanmem.com’
WHEN code = 2 THEN ‘Marketing-Kienthucphanmem.com’
END
FROM chuyenmuc;
Vậy là bạn đã cơ bản nắm được cú pháp của lệnh CASE WHEN trong SQL rồi phải không nào. Trong quá trình sử dụng SQL Server, bạn cần kết hợp linh hoạt các lệnh để đơn giản hóa công việc một cách tối đa. KTPM chúc bạn có được trải nghiệm tốt nhất trên SQL Server!
5/5 - (1 bình chọn)Từ khóa » Các Câu Lệnh Rẽ Nhánh Trong Sql
-
Câu Lệnh CASE Trong SQL Server
-
Lệnh IF...ELSE Trong SQL Server
-
CASE Trong SQL - Viblo
-
SQL Server: CASE-WHEN | V1Study
-
Lệnh Rẻ Nhánh IF ELSE Trong SQL Server - Freetuts
-
IF ELSE - Lệnh Rẽ Nhánh - SQL & Database
-
Lệnh IF...ELSE Trong SQL Server - NQ NEWS
-
Câu Lệnh CASE Trong SQL - Lập Trình Từ Đầu
-
Lệnh IF…ELSE Trong SQL Server - Phần Mềm FREE
-
Lệnh IF...ELSE Trong SQL Server - Thương Mại Điện Tử
-
Câu Lệnh CASE Trong SQL
-
Các Cấu Trúc Rẽ Nhánh If Switch Và Vòng Lặp For While Trong Dart
-
Cấu Trúc điều Khiển Trong T-SQL