Ano, něco takového:
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;
Jak poukázaly další odpovědi, MySQL má také IF()
pomocí méně podrobné syntaxe. Obecně se tomu snažím vyhnout, protože jde o rozšíření SQL specifické pro MySQL, které není obecně podporováno jinde. CASE
je standardní SQL a je mnohem lépe přenosný mezi různými databázovými stroji a dávám přednost psaní přenosných dotazů, pokud je to možné, pouze pomocí rozšíření specifických pro stroj, když je přenosná alternativa značně pomalejší nebo méně pohodlné.