CASECâu lệnh SQL Server (2008 hoặc 2012, cụ thể) có đánh giá tất cả các WHENđiều kiện hay nó thoát khi nó tìm thấy một WHENmệnh đề đánh giá là đúng? Nếu nó đi qua toàn bộ các điều kiện, điều đó có nghĩa là điều kiện cuối cùng được đánh giá là đúng sẽ ghi đè lên điều kiện đầu tiên được đánh giá là đúng? Ví dụ:
SELECT
CASE
WHEN 1+1 = 2 THEN'YES'
WHEN 1+1 = 3 THEN 'NO'
WHEN 1+1 = 2 THEN 'NO'
END
Kết quả là "CÓ" mặc dù lần cuối cùng khi điều kiện sẽ làm cho nó đánh giá thành "KHÔNG". Có vẻ như nó thoát khi tìm thấy điều kiện TRUE đầu tiên. Ai đó có thể vui lòng xác nhận nếu đây là trường hợp .
COALESCE()được dịch thành mộtCASEbiểu thức.)