Chức năng:
Biểu thức CASE là một biểu thức điều kiện được áp dụng bên trong một biểu thức khác. CASE trả về các giá trị khác nhau tùy thuộc vào điều kiện.
Cú pháp:
CASE
WHEN <BOOLENA_EXPRESSION> THEN <RESULT_EXPRESSION_1>
ELSE <RESULT_EXPRESSION_2>
END
Ví dụ minh họa
Để thuận tiện cho các bạn học tập, mình có tạo sẵn file .sql trong này đã mình tạo cấu trúc bảng và data sẵn để các bạn dễ dàng thực hiện truy vấn, các bạn có thể tải tại đây.
Ví dụ 1: Cho hai số a và b, tìm số lớn nhất?
Hướng dẫn giải:
DECLARE @a INT, @b INT, @result NVARCHAR(30)
SET @a = 3
SET @b = 5
SET @result = CASE
WHEN @a < @b THEN N'A nhỏ hơn B'
WHEN @a > @b THEN N'A lớn hơn B'
ELSE N'A bằng B'
END
PRINT @result
Kết quả:
Ví dụ 2: Theo mức lương của người lao động, hãy cho tôi biết đó là mức lương nào?
Nếu mức lương <200.000 thì thuộc loại “lương thấp”.
Nếu mức lương >= 200.000 && mức lương <= 300.000 thì được xếp vào loại "lương trung bình".
Nếu mức lương > 300.000 thì được xếp vào loại “lương cao”.
Hướng dẫn giải:
USE QLDEAN
SELECT TENNV, LUONG, 'XEP LOAI' =
CASE
WHEN LUONG < 200000 THEN N'Lương thấp'
WHEN LUONG BETWEEN 200000 AND 300000 THEN N'Lương trung bình'
WHEN LUONG > 300000 THEN N'Lương cao'
END
FROM NHANVIEN
Kết quả: