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.