sql >> データベース >  >> RDS >> Mysql

MySQLのcaseステートメント

    はい、次のようなものです:

    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であり、さまざまなデータベースエンジン間ではるかに移植性があります。移植可能な代替手段がかなりある場合にのみ、エンジン固有の拡張機能を使用して、可能な限り移植可能なクエリを作成することを好みます。 遅いか、あまり便利ではありません。



    1. Oracle-読み取り専用ユーザーを作成する方法

    2. 欠落しているアーカイブログからスタンバイデータベースを回復する方法

    3. 新しいデータベース設定で構成ファイルを更新します

    4. MySQLデータベースをPHPWebサイトに接続する方法