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

Hvorfor tillader Oracle SQL os ikke at bruge kolonnealiaser i GROUP BY-sætninger?

Det er ikke kun Oracle SQL, faktisk tror jeg, det er i overensstemmelse med ANSI SQL-standarden (selvom jeg ikke har en reference til det). Årsagen er, at SELECT-sætningen behandles logisk efter GROUP BY-sætningen, så på det tidspunkt, hvor GROUP BY er færdig, eksisterer aliasserne endnu ikke.

Måske hjælper dette lidt latterlige eksempel med at afklare problemet og den tvetydighed, som SQL undgår:

SQL> select job as sal, sum(sal) as job
  2  from scott.emp
  3  group by job;

SAL              JOB
--------- ----------
ANALYST         6000
CLERK           4150
MANAGER         8275
PRESIDENT       5000
SALESMAN        5600


  1. Funktionen udføres hurtigere uden STRICT modifikator?

  2. Hvordan indstilles ORACLE_HOME-variablen korrekt på Ubuntu 9.x?

  3. MS Access:Fordele og ulemper

  4. Sådan indsætter du en lang streng i CLOB-datatypen i Oracle