sql >> Databáze >  >> RDS >> Oracle

Jak lze v Oracle zřetězit více řádků do jednoho bez vytvoření uložené procedury?

Od Oracle 11gR2 by klauzule LISTAGG měla stačit:

SELECT question_id,
       LISTAGG(element_id, ',') WITHIN GROUP (ORDER BY element_id)
FROM YOUR_TABLE
GROUP BY question_id;

Dejte si pozor, pokud je výsledný řetězec příliš velký (například více než 4000 znaků pro VARCHAR2):od verze 12cR2 můžeme k vyřešení tohoto problému použít ON OVERFLOW TRUNCATE/ERROR.



  1. Typ tabulky v příkladu Oracle PL SQL

  2. Jak CHR() funguje v MariaDB

  3. Návrat jako pole objektů JSON v SQL (Postgres)

  4. SQLite nemůže otevřít soubor databáze (kód 14) při častém dotazu SELECT