sql >> Database teknologi >  >> RDS >> Oracle

Alias ​​Kolonnenavn i flere tilfælde

Du kan ikke bruge kolonnealiasser i den samme SELECT klausul. Du har to valgmuligheder:

Brug en underforespørgsel:

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
    ...)

eller du kan gentage den logik, du brugte i den første 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. SQL-fejl:Forkert syntaks nær søgeordet 'Bruger'

  2. PDO Transaktionserklæring med indsæt og hent outputfejl

  3. fjern gamle poster gruppering efter tre kolonner og sortering efter dato

  4. Solve kan ikke udføre en DML-handling i en forespørgsel