sql >> Databáze >  >> RDS >> Mysql

Případ Mysql nefunguje

Když vložíte název sloupce za CASE , neměli byste používat WHEN column = value , stačí použít WHEN value , protože automaticky porovnává sloupec s každou hodnotou v WHEN klauzule.

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 , 

Když uděláte obojí, testujete week_day = (week_day = -1) , week_day = (week_day = 1) , atd. Funguje to v pondělí, protože 1 = (1 = 1) je ekvivalentní 1 = 1 , což je pravda; ale v úterý je to 2 = (2 = 2) , což je ekvivalentní 2 = 1 , což je nepravdivé.




  1. primární indexy versus sekundární indexy:výkonnostní rozdíly

  2. Jak povolit kompresi na existující tabulce v SQL Server (T-SQL)

  3. Jak rozdělit postgresovou tabulku pomocí mezilehlé tabulky

  4. První písmeno velké. MySQL