Ja, etwa so:
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;
Wie andere Antworten darauf hingewiesen haben, hat MySQL auch den IF()
Funktion, um dies mit einer weniger ausführlichen Syntax zu tun. Ich versuche dies im Allgemeinen zu vermeiden, da es sich um eine MySQL-spezifische Erweiterung von SQL handelt, die anderswo nicht allgemein unterstützt wird. CASE
ist Standard-SQL und viel besser über verschiedene Datenbank-Engines hinweg portierbar, und ich ziehe es vor, so viel wie möglich portable Abfragen zu schreiben und nur Engine-spezifische Erweiterungen zu verwenden, wenn die portable Alternative beträchtlich ist langsamer oder weniger bequem.