Объединить строки в операторе Oracle SQL - PullRequest
2 голосов
/ 19 апреля 2010

У меня есть таблица предметов, хранящихся таким образом:

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

И мне нужно получить запрос SQL:

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

Ответы [ 2 ]

3 голосов
/ 19 апреля 2010

Если у вас есть 11g Release 2, вы можете использовать Listagg:

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

Он позволяет сортировать ваши значения, и он уже поставляется с Oracle:

A1  B1, B2, B3
A2  B1, B4

В противном случае вы можете использовать stragg функцию Tom Kyte , описанную в Rows to String .

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

возвращает

A1  B1,B3,B2
A2  B1,B4
0 голосов
/ 19 апреля 2010
SELECT *
FROM `table1`
ORDER BY `afield` ASC

Используйте вот так

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...