2

I have a table of items stored this way :

A1 | B1
A1 | B2
A1 | B3
A2 | B1
A2 | B4
...

And I need to retrieve with a SQL Query :

A1 | B1, B2, B3
A2 | B1, B4
...
kilikopela
  • 23
  • 2
  • Duplicate of this question: http://stackoverflow.com/questions/492563/oracle-combine-multiple-results-in-a-subquery-into-a-single-comma-separated-valu – Doug Porter Apr 19 '10 at 12:42

2 Answers2

3

If you have 11g Release 2 you can use Listagg:

Select a, Listagg(b, ', ') Within Group ( Order By b )
From t
Group By a

It allows to sort your values, and it already comes with Oracle:

A1  B1, B2, B3
A2  B1, B4

Otherwise you can use the stragg function by Tom Kyte, described in Rows to String.

Select a, stragg(b)
From t
Group By a

returns

A1  B1,B3,B2
A2  B1,B4
Peter Lang
  • 54,264
  • 27
  • 148
  • 161
-2
SELECT *
FROM `table1`
ORDER BY `afield` ASC

Use like this

Karthik
  • 3,221
  • 5
  • 28
  • 38