sql >> Databasteknik >  >> RDS >> Mysql

Case Expression vs Case Statement

CASE uttryck utvärderas till ett värde, dvs det används för att utvärdera till ett av en uppsättning resultat, baserat på något villkor.
Exempel:

SELECT CASE
    WHEN type = 1 THEN 'foo'
    WHEN type = 2 THEN 'bar'
    ELSE 'baz'
END AS name_for_numeric_type
FROM sometable`

CASE sats exekverar en av en uppsättning satser, baserat på något villkor.
Exempel:

CASE
    WHEN action = 'update' THEN
        UPDATE sometable SET column = value WHERE condition;
    WHEN action = 'create' THEN
        INSERT INTO sometable (column) VALUES (value);
END CASE

Du ser hur de är lika, men påståendet inte utvärdera till ett värde och kan användas på egen hand, medan uttrycket behöver vara en del av ett uttryck, t.ex. en fråga eller ett uppdrag. Du kan inte använda satsen i en fråga, eftersom en sökning inte kan innehålla satser, bara uttryck som behöver utvärderas till något (frågan i sig är en sats, på ett sätt), t.ex. SELECT CASE WHEN condition THEN UPDATE table SET something; END CASE ingen mening.




  1. Är 'SKILT FRÅN' en riktig MySQL-operatör?

  2. Hur man tar bort mysql-databas genom shell-kommando

  3. Använda MariaDB Audit Plugin för databassäkerhet

  4. Visa endast timmar i MYSQL DATEDIFF