はい、次のようなものです:
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;
他の回答が指摘しているように、MySQLにはIF()
もあります あまり冗長でない構文を使用してこれを行う関数。これはMySQL固有のSQLの拡張機能であり、他の場所では一般的にサポートされていないため、私は通常これを避けようとします。 CASE
は標準SQLであり、さまざまなデータベースエンジン間ではるかに移植性があります。移植可能な代替手段がかなりある場合にのみ、エンジン固有の拡張機能を使用して、可能な限り移植可能なクエリを作成することを好みます。 遅いか、あまり便利ではありません。