Mysql
 sql >> Base de données >  >> RDS >> Mysql

Déclaration de cas dans MySQL

Oui, quelque chose comme ça :

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;

Comme d'autres réponses l'ont souligné, MySQL a également le IF() fonction pour ce faire en utilisant une syntaxe moins détaillée. J'essaie généralement d'éviter cela car il s'agit d'une extension SQL spécifique à MySQL qui n'est généralement pas prise en charge ailleurs. CASE est SQL standard et est beaucoup plus portable sur différents moteurs de base de données, et je préfère écrire des requêtes portables autant que possible, en utilisant uniquement des extensions spécifiques au moteur lorsque l'alternative portable est considérablement plus lent ou moins pratique.