Mysql
 sql >> Database >  >> RDS >> Mysql

Istruzione case in MySQL

Sì, qualcosa del genere:

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;

Come hanno sottolineato altre risposte, MySQL ha anche IF() funzione per farlo usando una sintassi meno dettagliata. In genere cerco di evitarlo perché è un'estensione specifica di MySQL a SQL che generalmente non è supportata altrove. CASE è SQL standard ed è molto più portabile su diversi motori di database, e preferisco scrivere query portabili il più possibile, utilizzando estensioni specifiche del motore solo quando l'alternativa portabile è considerevolmente più lento o meno conveniente.