sql >> Databasteknik >  >> RDS >> Oracle

Alias ​​Kolumnnamn i flera fall

Du kan inte använda kolumnalias i samma SELECT klausul. Du har två val:

Använd en underfråga:

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 så kan du upprepa logiken som du använde i det första 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. Raderingsordning med begränsningar för främmande nyckel,

  2. Säkra filer för nedladdning

  3. Failover på MySQL JDBC-anslutningar?

  4. Åtkomst nekad för användare ''@'localhost' (med lösenord:NEJ)