Tak, coś takiego:
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 wskazały inne odpowiedzi, MySQL ma również funkcję IF()
funkcja, aby to zrobić przy użyciu mniej pełnej składni. Generalnie staram się tego unikać, ponieważ jest to specyficzne dla MySQL rozszerzenie SQL, które nie jest ogólnie obsługiwane gdzie indziej. CASE
jest standardowym SQL i jest znacznie bardziej przenośny w różnych silnikach baz danych, a ja wolę pisać przenośne zapytania tak często, jak to możliwe, używając tylko rozszerzeń specyficznych dla silnika, gdy przenośna alternatywa jest znacznie wolniej lub mniej wygodnie.