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

複数のcaseステートメントのエイリアス列名

    同じSELECTで列エイリアスを使用することはできません 句。 2つの選択肢があります:

    サブクエリを使用する:

    SELECT Alias1,
           CASE
                WHEN Alias1 = FieldA1 THEN FieldA0
                WHEN Alias1 = FieldB1 THEN FieldA1
                ELSE NULL
           END AS Alias2 
    FROM (
        SELECT CASE 
                    WHEN FieldA = 'TestA' THEN FieldA1
                    WHEN FieldB = 'TestB' THEN FieldB1
                    ELSE NULL
               END AS Alias1,
               FieldA1
               FieldB1
        ...)
    

    または、最初のCASEで使用したロジックを繰り返すことができます :

    SELECT CASE 
                WHEN FieldA = 'TestA' THEN FieldA1
                WHEN FieldB = 'TestB' THEN FieldB1
                ELSE NULL
           END AS Alias1,
           CASE 
                WHEN FieldA = 'TestA' THEN FieldA0
                WHEN FieldB = 'TestB' THEN FieldB0
                ELSE NULL
           END AS Alias2
    



    1. phpで配列キーをチェックしてmysqlに配列値を保存する方法

    2. SQLで複数の文字を置き換える方法は?

    3. SQL Server:XPATHクエリが失敗する

    4. Doctrineconvert-mappingを実行するときにテーブルをスキップする