Oracle
 sql >> база данни >  >> RDS >> Oracle

Как могат да бъдат обединени няколко реда в един в Oracle, без да се създава съхранена процедура?

От Oracle 11gR2 клаузата LISTAGG трябва да свърши работа:

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

Внимавайте, ако резултантният низ е твърде голям (повече от 4000 знака за VARCHAR2, например):от версия 12cR2 можем да използваме ON OVERLOW TRUNCATE/ERROR, за да се справим с този проблем.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Попълване на елемент от дърво с група записи във форми на Oracle

  2. Какво всъщност използва LISTAGG с ORDER BY NULL като критерии за поръчка?

  3. Конкатениране на колона от група в R

  4. Брой петъци между две дати

  5. Любопитен проблем с Oracle UNION и ORDER BY