1. Các câu lệnh cơ bản
1.5. Biểu thức lựa chọn CASE
Khác với ngôn ngữ lập trình PASCAL, CASE ở trong T-SQL không phải là một cấu trúc rẽ nhánh mà nó là một biểu thức lựa chọn làm nhiệm vụ trả về một giá trị phù hợp được chọn (chức năng gần giống với hàm IF trong Excel, nhưng khác với hàm IF ở chỗ biểu thức CASE ở đây cho phép chọn 1 trong nhiều giá trị)
CASE biểu thức lựa chọn
WHEN giá trị 1 THEN giá trị trả về 1 WHEN giá trị 2 THEN giá trị trả về 2 WHEN giá trị 3 THEN giá trị trả về 3 ...
WHEN giá trị n THEN giá trị trả về n [ESLE giá trị trả về khác]
END
Khi biểu thức lựa chọn được so khớp bằng với giá trị i thì giá trị trả về i tương ứng sẽ được trả về như là kết quả biểu thức CASE.
Ví dụ: Với bảng HocSinh(MaHS,TenHS,MaXepLoai) Select MaHS,TenHS, XepLoai=CASE MaXepLoai WHEN 1 THEN 'GIOI' WHEN 2 THEN 'KHA'
WHEN 3 THEN 'TRUNG BINH' ELSE 'KEM'
END From HocSinh
Như vậy câu lệnh Select sẽ đưa ra danh sách học sinh với xếp loại tương ứng dựa trên MaXepLoai bằng cách sử dụng biểu thức CASE
Chú ý:
Ngoài cấu trúc như trên, biểu thức CASE còn có một dạng khác được gọi là Searched CASE. Đây là dạng tổng quát hơn:
CASE
WHEN biểu thức logic 1 THEN giá trị trả về 1 WHEN biểu thức logic 2 THEN giá trị trả về 2 . . .
WHEN biểu thức logic n THEN giá trị trả về n [ELSE giá trị trả về khác]
END
WHEN không phải là một giá trị mà là một biểu thức logic. Nếu biểu thức logic nào có giá trị đúng thì giá trị trả về tương ứng được chọn.