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

LISTAGG i ORACLE

LISTAGG analytisk funktion blev introduceret i Oracle 11g Release 2 . Så hvis du har en ældre version, vil du ikke være i stand til at bruge den.

Fejlen virker mærkelig. Du burde faktisk få ORA-00904: "DEPTNAME": invalid identifier som standard EMP tabel i SCOTT skemaet har ikke DEPTNAME-kolonnen. Du bør også få ORA-00979: not a GROUP BY expression da du ikke nævnte SELECT ed kolonner i GROUP BY udtryk.

Brug af standarden EMP tabel i SCOTT skema:

SQL> SELECT deptno,
  2    job,
  3    LISTAGG(ename, ',') WITHIN GROUP (
  4  ORDER BY ename) AS employees
  5  FROM emp
  6  GROUP BY deptno,
  7    job;

    DEPTNO JOB       EMPLOYEES
---------- --------- ------------------------
        10 CLERK     MILLER
        10 MANAGER   CLARK
        10 PRESIDENT KING
        20 CLERK     ADAMS,SMITH
        20 ANALYST   FORD,SCOTT
        20 MANAGER   JONES
        30 CLERK     JAMES
        30 MANAGER   BLAKE
        30 SALESMAN  ALLEN,MARTIN,TURNER,WARD

9 rows selected.

SQL>


  1. SQL-sætning for at få datoen de næste 2 dage fra nu

  2. Mysql select giver det forkerte svar inde i php

  3. 2 måder at formatere et tal med førende nuller i Oracle

  4. PHP MYSQL - Indsæt i uden at bruge kolonnenavne, men med autoincrement felt