Frage:
Angenommen, es handelt sich um eine Datenbanktabelle mit Transaktionsdetails Es ist möglich, mithilfe einer SQL zwei Spalten zu generieren, „Einkommensbetrag“ und „Ausgabenbetrag“, und die Transaktionsbeträge danach zu trennen, ob es sich um Einnahmen oder Ausgaben handelt Abfrage?
Lösung:
Ja, mit der CASE-Anweisung in MySQL ist es möglich, die Spalten bedingt zu füllen und die Beträge basierend auf dem abgelegten „action_type“ zu trennen .
Hier ist eine Beispielabfrage, um dies zu erreichen:
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;
Diese Abfrage verwendet den CASE Anweisung zum Auswerten der Spalte „action_type“. Wenn „action_type“ „Income“ ist, weist es „income_amt“ den Wert von „action_amount“ zu und setzt „expense_amt“ auf NULL. Wenn umgekehrt der „action_type“ „Expense“ lautet, wird „expense_amt“ der Wert von „action_amount“ zugewiesen und „income_amt“ auf NULL gesetzt.
Wie vom Befragten angegeben, stellt MySQL auch das IF( ) fungieren als Alternative zur CASE-Anweisung. Allerdings wird die CASE-Anweisung aufgrund ihrer Portabilität über verschiedene Datenbank-Engines im Vergleich zur MySQL-spezifischen IF()-Funktion bevorzugt.
Das obige ist der detaillierte Inhalt vonKann die CASE-Anweisung von MySQL Transaktionsbeträge in Einnahmen- und Ausgabenspalten aufteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!