質問:
トランザクションの詳細を含むデータベース テーブルがあるとします。 「Income Amt」と「Expense Amt」の 2 つの列を生成して、取引額を次のように分けることができます。 SQL クエリを使用して収入を表しているのか、支出を表しているのか?
解決策:
はい、MySQL の CASE ステートメントを使用すると、条件付きで列を区切ってデータを入力することができます。 「action_type」フィールドに基づいた金額。
これを実現するためのサンプル クエリを次に示します。 this:
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;
このクエリは、CASE ステートメントを使用して「action_type」列を評価します。 「action_type」が「Income」の場合、「action_amount」の値が「income_amt」に割り当てられ、「expense_amt」が NULL に設定されます。逆に、「action_type」が「Expense」の場合、「action_amount」の値を「expense_amt」に割り当て、「income_amt」を NULL に設定します。
回答者が述べたように、MySQL は IF( ) CASE ステートメントの代替として機能します。ただし、MySQL 固有の IF() 関数と比較して、さまざまなデータベース エンジン間での移植性があるため、CASE ステートメントの方が推奨されます。
以上がMySQL の CASE ステートメントは、トランザクション金額を収入列と支出列に分離できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。