ホームページ > データベース > mysql チュートリアル > MySQL の CASE ステートメントは、トランザクション金額を収入列と支出列に分離できますか?

MySQL の CASE ステートメントは、トランザクション金額を収入列と支出列に分離できますか?

Mary-Kate Olsen
リリース: 2025-01-02 12:52:40
オリジナル
356 人が閲覧しました

Can MySQL's CASE Statement Separate Transaction Amounts into Income and Expense Columns?

CASE ステートメントを使用して MySQL に条件付きで列を設定する

質問:

トランザクションの詳細を含むデータベース テーブルがあるとします。 「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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート