CASE
Câ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 WHEN
mệ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ộtCASE
biểu thức.)