Ja, sådan noget her:
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;
Som andre svar har påpeget, har MySQL også IF()
funktion for at gøre dette ved at bruge mindre udførlig syntaks. Jeg prøver generelt at undgå dette, fordi det er en MySQL-specifik udvidelse til SQL, der generelt ikke understøttes andre steder. CASE
er standard SQL og er meget mere bærbar på tværs af forskellige databasemotorer, og jeg foretrækker at skrive bærbare forespørgsler så meget som muligt, kun ved at bruge motorspecifikke udvidelser, når det bærbare alternativ er betydeligt langsommere eller mindre bekvemt.