sql - tablas - Oracle: combina mĂșltiples resultados en una subconsulta en un solo valor separado por comas
pivot oracle ejemplos (5)
Esta pregunta ya tiene una respuesta aquí:
Estoy tratando de convertir una subconsulta de una sola columna en una lista de valores de VARCHAR
separada por comandos.
Esto es idéntico a esta pregunta , pero para Oracle en lugar de SQL Server o MySQL.
Aquí hay un blog que muestra una consulta de Oracle para trabajar como GROUP_CONCAT()
de MySQL GROUP_CONCAT()
:
http://halisway.blogspot.com/2006/08/oracle-groupconcat-updated-again.html
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;
Hay un excelente resumen de las técnicas de agregación de cuerdas disponibles en el sitio de Tim Hall.
11.2 introdujo LISTAGG , que a diferencia de WM_CONCAT está documentado. Todavía no estamos en 11.2, así que usamos una función agregada personalizada.
SELECCIONAR deptno, wm_concat (ename) COMO empleados DESDE emp GROUP BY deptno;
Referencia: http://forums.oracle.com/forums/thread.jspa?messageID=1186901�