Ja, zoiets als dit:
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;
Zoals andere antwoorden hebben aangegeven, heeft MySQL ook de IF()
functie om dit te doen met een minder uitgebreide syntaxis. Ik probeer dit over het algemeen te vermijden omdat het een MySQL-specifieke extensie voor SQL is die over het algemeen niet elders wordt ondersteund. CASE
is standaard SQL en is veel draagbaarder over verschillende database-engines, en ik geef er de voorkeur aan om zoveel mogelijk draagbare query's te schrijven, waarbij ik alleen engine-specifieke extensies gebruik wanneer het draagbare alternatief aanzienlijk is langzamer of minder handig.