sql >> Databasteknik >  >> RDS >> Oracle

Hur kan flera rader sammanfogas till en i Oracle utan att skapa en lagrad procedur?

Från Oracle 11gR2 borde LISTAGG-satsen göra susen:

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

Se upp om den resulterande strängen är för stor (mer än 4000 tecken för en VARCHAR2, till exempel):från version 12cR2 kan vi använda ON OVERFLOW TRUNCATE/ERROR för att hantera det här problemet.



  1. Full förståelse för PDO ATTR_PERSISTENT

  2. NULL i MySQL (prestanda och lagring)

  3. Finns det en boolesk datatyp i Microsoft SQL Server som det finns i MySQL?

  4. Hur SQLite Rtrim() fungerar