Oracle: combine múltiples resultados en una subconsulta en un solo valor separado por comas [duplicado]

StackOverflow https://stackoverflow.com/questions/492563

Pregunta

    

Esta pregunta ya tiene una respuesta aquí:

         

Estoy tratando de convertir una subconsulta de una sola columna en una lista de valores VARCHAR separados por comandos.

Esto es idéntico a this pregunta , pero para Oracle en lugar de SQL Server o MySQL.

¿Fue útil?

Solución

Hay un excelente resumen de las técnicas de agregación de cadenas disponibles en El sitio de Tim Hall.

Otros consejos

Encontré esto que parece funcionar. Pensamientos?

SELECT SUBSTR (c, 2) concatenated
  FROM (SELECT     SYS_CONNECT_BY_PATH ( myfield, ',') c, r
              FROM (SELECT   ROWNUM ID, myfield,
                             RANK () OVER (ORDER BY ROWID DESC) r
                        FROM mytable
                    ORDER BY myfield)
        START WITH ID = 1
        CONNECT BY PRIOR ID = ID - 1)
 WHERE r = 1;

11.2 presenta LISTAGG , que a diferencia de WM_CONCAT está documentado. Todavía no estamos en 11.2, por lo que utilizamos una función de agregado personalizada.

Aquí hay un blog que muestra una consulta de Oracle para funcionar como GROUP_CONCAT():

de MySQL

http://halisway.blogspot.com/2006 /08/oracle-groupconcat-updated-again.html

SELECT deptno, wm_concat (ename) AS empleados DE emp GROUP BY deptno;

Referencia: http://forums.oracle. com / forums / thread.jspa? messageID = 1186901 & amp; # 1186901

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top