Khi bạn đặt tên cột sau CASE , bạn không nên sử dụng WHEN column = value , chỉ cần sử dụng giá trị WHEN value , bởi vì nó tự động so sánh cột với từng giá trị trong WHEN value mệnh đề.
CASE type
WHEN 1 THEN 'General day'
ELSE 'Special date'
END AS type_changed,
CASE week_day
WHEN -1 THEN 'notset'
WHEN 1 THEN 'monday'
WHEN 2 THEN 'tuesday'
WHEN 3 THEN 'wednesday'
WHEN 4 THEN 'thursday'
WHEN 5 THEN 'friday'
WHEN 6 THEN 'saturday'
WHEN 7 THEN 'sunday'
END AS week_day_mod ,
Khi bạn làm cả hai, bạn đang kiểm tra week_day = (week_day = -1) , week_day = (week_day = 1) , v.v. Nó hoạt động vào Thứ Hai vì 1 = (1 = 1) tương đương với 1 = 1 , cái nào đúng; nhưng vào thứ Ba, đó là 2 = (2 = 2) , tương đương với 2 = 1 , sai.