sql >> Base de Datos >  >> RDS >> Mysql

Declaración de caso en MySQL

Sí, algo como esto:

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;

Como han señalado otras respuestas, MySQL también tiene el IF() función para hacer esto usando una sintaxis menos detallada. Generalmente trato de evitar esto porque es una extensión específica de MySQL para SQL que generalmente no se admite en otros lugares. CASE es SQL estándar y es mucho más portátil entre diferentes motores de bases de datos, y prefiero escribir consultas portátiles tanto como sea posible, usando solo extensiones específicas del motor cuando la alternativa portátil es considerablemente más lento o menos conveniente.