Oracle
 sql >> база данни >  >> RDS >> Oracle

Псевдоним Име на колона в многократен оператор

Не можете да използвате псевдоними на колони в един и същ SELECT клауза. Имате два избора:

Използвайте подзаявка:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Покритие на код за PL/SQL

  2. Самодоволството води до:Рискът става реалност

  3. Правилният начин за предоставяне на достъп на потребителите до допълнителни схеми в Oracle

  4. Завръщане от Open World 2013

  5. Как да получа текущата година, използвайки SQL на Oracle?