Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Case-Anweisung in MySQL

Ja, etwa so:

SELECT
    id,
    action_heading,
    CASE
        WHEN action_type = 'Income' THEN action_amount
        ELSE NULL
    END AS income_amt,
    CASE
        WHEN action_type = 'Expense' THEN action_amount
        ELSE NULL
    END AS expense_amt

FROM tbl_transaction;

Wie andere Antworten darauf hingewiesen haben, hat MySQL auch den IF() Funktion, um dies mit einer weniger ausführlichen Syntax zu tun. Ich versuche dies im Allgemeinen zu vermeiden, da es sich um eine MySQL-spezifische Erweiterung von SQL handelt, die anderswo nicht allgemein unterstützt wird. CASE ist Standard-SQL und viel besser über verschiedene Datenbank-Engines hinweg portierbar, und ich ziehe es vor, so viel wie möglich portable Abfragen zu schreiben und nur Engine-spezifische Erweiterungen zu verwenden, wenn die portable Alternative beträchtlich ist langsamer oder weniger bequem.