агрегация строк в Oracle 10g

Как агрегировать строку (конкатенировать) с Oracle 10g SQL?


person acroa    schedule 10.03.2010    source источник
comment
Агрегация и конкатенация — не совсем одно и то же. Что вы имели в виду?   -  person FrustratedWithFormsDesigner    schedule 10.03.2010
comment
то, что я имел в виду, заключалось в агрегировании, где функция агрегирования — это конкатенация. скажем, таблица данных выглядит следующим образом: текст класса A TEXT1 A TEXT2 B TEXT3 B TEXT4 Я хотел бы, чтобы группа по запросу выбирала класс, функцию (текст) из TABLE группировала по классам, что приводило к чему-то вроде: A TEXT1, TEXT2 B TEXT3 , ТЕКСТ4   -  person acroa    schedule 16.03.2010


Ответы (5)


Вы можете попробовать функцию сбора:

http://www.oracle-developer.net/display.php?id= 306

Некоторые другие трюки здесь:

http://www.oracle-base.com/articles/misc/StringAggregationTechniques.php

... Если вы на самом деле имеете в виду конкатенацию, а не агрегацию, тогда воспользуйтесь советом всех остальных и используйте оператор || между двумя строками:

select 'abc'||'def' from dual;
person FrustratedWithFormsDesigner    schedule 10.03.2010

Как ни странно, это "||" оператор:

field1 || field2
person Mike Mooney    schedule 10.03.2010

Вы можете использовать оператор ||. Пример: 'First' || 'Second'

Также функция CONCAT(var1, var2) позволяет объединить два символа VARCHAR2. Пример: CONCAT('First', 'Second')

person Ajadex    schedule 10.03.2010

Объединение: CONCAT или ||

Совокупность: COLLECT

person JoeG    schedule 10.03.2010

Существует недокументированная функция wm_concat, которую вы можете использовать. Другим вариантом было бы свернуть самостоятельно. LISTAGG не доступен в 10 г, я думаю.

person SQB    schedule 06.11.2013