Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Instrução de caso no MySQL


Sim, algo assim:
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 outras respostas apontaram, o MySQL também possui o IF() função para fazer isso usando uma sintaxe menos detalhada. Eu geralmente tento evitar isso porque é uma extensão específica do MySQL para SQL que geralmente não é suportada em outros lugares. CASE é SQL padrão e é muito mais portátil em diferentes mecanismos de banco de dados, e prefiro escrever consultas portáteis o máximo possível, usando apenas extensões específicas do mecanismo quando a alternativa portátil for consideravelmente mais lento ou menos conveniente.