Quando você coloca o nome da coluna após
CASE
, você não deve usar WHEN column = value
, basta usar WHEN value
, porque compara automaticamente a coluna com cada valor no WHEN
cláusulas. 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 ,
Quando você faz as duas coisas, você está testando
week_day = (week_day = -1)
, week_day = (week_day = 1)
, etc. Funciona na segunda-feira porque 1 = (1 = 1)
é equivalente a 1 = 1
, que é verdade; mas na terça é 2 = (2 = 2)
, que é equivalente a 2 = 1
, o que é falso.