Từ khoá CASE cho phép chúng ta trả về giá trị dựa trên giá trị của biểu thức điều kiện là đúng. Nó có thể sử dụng bất kỳ ở nhánh nào khi biểu thức điều kiện thoả mãn.
Cú pháp:
CASE expression
WHEN expression1 THEN expression1
[[WHEN expression2 THEN expression2] […]] [ELSE expression]
END
Bộ môn CNPM – Khoa CNTT - UTEHY Trang 98 Biểu thức: là một hằng số, tên cột, một hàm, truy vấn con, hoặc bất kỳ biểu thức
nào có thể so sánh với biểu thức khác.
WHEN..THEN: Mệnh đề WHEN giữ giá trị điều kiện hoặc biểu thức cần so sánh. Nếu biểu thức so sánh trả về giá trị ĐÚNG thì mệnh đề THEN được thực hiện. Mệnh đề ELSE chỉ được thực hiện nếu tất cả giá trị trong mệnh đề WHEN trả về SAI.
Lệnh lựa chọn cơ bản:
SELECT au_fname, au_lname, CASE state
WHEN 'OR' THEN 'Oregon' END AS StateName
FROM authors
Cập nhật nhiều cột
Chúng ta có thể sử dụng câu lệnh CASE để cập nhật nhiều cột trong bảng, thậm trí sử dụng điều kiện cập nhật riêng cho mỗi cột. Ví dụ này cập nhật vào bảng publishers để thiết lập cột state là “_ _“ cho những công ty không ở USA, và thay đổi thành phố cho một nhà xuất bản cụ thể, tất cả dữ liệu trong bảng được cập nhật.
UPDATE publishers SET state = CASE WHEN country <> "USA" THEN "--" ELSE state
END,
city = CASE
WHEN pub_id = "9999" THEN "LYON" ELSE city
END
Bộ môn CNPM – Khoa CNTT - UTEHY Trang 99
Định dạng giống nhau sẽ cập nhật 3 hoặc nhiều hàng cùng một lúc với các điều kiện cập nhật khác nhau.