sql - 10g - listagg oracle ejemplos
¿Hay alguna función en Oracle similar a group_concat en mysql? (1)
11g y superior: use listagg :
SELECT
col1,
LISTAGG(col2, '', '') WITHIN GROUP (ORDER BY col2) "names"
FROM table_x
GROUP BY col1
10g o menos: un método es usar una función:
CREATE OR REPLACE FUNCTION get_comma_separated_value (input_val in number)
RETURN VARCHAR2
IS
return_text VARCHAR2(10000) := NULL;
BEGIN
FOR x IN (SELECT col2 FROM table_name WHERE col1 = input_val) LOOP
return_text := return_text || '','' || x.col2 ;
END LOOP;
RETURN LTRIM(return_text, '','');
END;
/
Para usar la función:
select col1, get_comma_separated_value(col1) from table_name
Nota: Existe una función (no WM_CONCAT
) WM_CONCAT
disponible en ciertas versiones anteriores de Oracle, que podría WM_CONCAT
útil: consulte aquí para obtener más información .
En MySQL:
SELECT col1, GROUP_CONCAT(col2) FROM table_name GROUP BY col1
Esta pregunta ya tiene una respuesta aquí:
Mis entradas son de esta manera.
col1 col2
1 a
1 b
2 c
2 d
2 e
O / p: debería ser como
col1 col2
1 a,b
2 c,d,e
Quiero una consulta que se puede disparar a nivel de base de datos. Lo intenté de varias maneras, pero no pude hacer esto ...