CASE
biểu thức đánh giá một giá trị, tức là nó được sử dụng để đánh giá một trong số các kết quả, dựa trên một số điều kiện.
Ví dụ:
SELECT CASE
WHEN type = 1 THEN 'foo'
WHEN type = 2 THEN 'bar'
ELSE 'baz'
END AS name_for_numeric_type
FROM sometable`
CASE
câu lệnh thực thi một trong một tập hợp các câu lệnh, dựa trên một số điều kiện.
Ví dụ:
CASE
WHEN action = 'update' THEN
UPDATE sometable SET column = value WHERE condition;
WHEN action = 'create' THEN
INSERT INTO sometable (column) VALUES (value);
END CASE
Bạn thấy chúng giống nhau như thế nào, nhưng tuyên bố không đánh giá thành một giá trị và có thể được sử dụng riêng, trong khi biểu thức cần phải là một phần của biểu thức, ví dụ:một truy vấn hoặc một nhiệm vụ. Bạn không thể sử dụng câu lệnh trong một truy vấn, vì một truy vấn không thể chứa các câu lệnh, chỉ có các biểu thức cần đánh giá một điều gì đó (theo một cách nào đó, bản thân truy vấn là một câu lệnh), ví dụ:SELECT CASE WHEN condition THEN UPDATE table SET something; END CASE
vô nghĩa.