Sabe aquela consulta SQL onde deseja retornar diversos valores de um campo específico como coluna e não em várias linhas como estão gravados na tabela?
A função LISTAGG (list aggregate) no banco de dados Oracle faz isso, agrupando os dados na mesma linha de uma instrução SELECT e concatenando o resultado em uma coluna que pode ser utilizada em conjunto com as funções ORDER BY e OVER.
Para demonstrar a sua aplicação em consultas, vamos utilizar as seguintes tabelas:

Uma consulta comum unindo estas tabelas exibiria o seguinte resultado em linhas:

Para mostrar um pedido por linha com todos os itens (código e nome do produto) em uma única coluna separados por “;” utilizamos a função LISTAGG na consulta:

Na função, informamos o(s) campo(s) ou expressão que desejamos concatenar e o delimitador de separação como parâmetros. Na expressão WITHIN GROUP é determinado a ordem em que os valores devem ser concatenados para exibição.
Essa função é útil quando desejamos tratar um campo como lista em alguma linguagem de programação, agrupando valores que facilitarão a conversão para objetos. A utilizei especificamente no Java convertendo o ResultSet de uma consulta nativa em um Array de String, mas suas aplicações são diversas.
Referências e Links
http://douglasdba.wordpress.com/2013/07/05/funcao-listagg
http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions089.htm
Legal. Tava precisando de algo assim, mas não sabia que existia. Porém pra mim era em PostgreSQL. Mas com base no post, vi que o equivalente ao LISTAGG é string_agg()
Exemplo: select string_agg(col,’,’) from my_table
CurtirCurtido por 1 pessoa