sql >> Database >  >> RDS >> Oracle

LISTAGG in ORACLE

De LISTAGG analytische functie is geïntroduceerd in Oracle 11g Release 2 . Dus als u een oudere versie gebruikt, kunt u deze niet gebruiken.

De fout lijkt vreemd. Je zou eigenlijk ORA-00904: "DEPTNAME": invalid identifier moeten krijgen als de standaard EMP tabel in SCOTT schema heeft geen DEPTNAME-kolom. U zou ook ORA-00979: not a GROUP BY expression moeten krijgen omdat je de SELECT . niet hebt genoemd ed kolommen in de GROUP BY uitdrukking.

De standaard EMP . gebruiken tabel in SCOTT schema:

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 Server - Dynamische PIVOT-tabel - SQL-injectie

  2. Zoek of het getal tussen twee getallen ligt in verschillende velden in een MySQL-database

  3. Is het opslaan van tellingen van databaserecords overbodig?

  4. Is er een manier om tekstgegevens naar de database in PostgreSQL te laden?