2015-05-04 4 views
-1

У меня есть столбцы a, b в таблице x. И я хочу изменить эти данные столбцов на строки. возможно иметь дубликаты vales в таблице, но в столбцах для изменения строки должны появляться только отдельные значения.столбцы для изменения строк в oracle sql

E.G: 
a b 
1 2 
1 11 
3 4 
5 6 
7 8 
9 10 
......etc 

result 1 (query 1) should be 1-2,1-11,3-4,5-6,7-8,9-10..... и т.д.

result 2 (query 2) should b 1,3,5,7,9.... и т.д. (только один 1 должен прийти, как у нас есть дублирующие данные для колонки)

, как можно достичь этого в Oracle SQL.

Пожалуйста, помогите.

+0

Вы ищете шарнир. Взгляните сюда: http://www.oracle-developer.net/display.php?id=506 – danish

+0

спасибо за документ. Как я могу достичь формата результата, который я упомянул в запросе. – user3195273

ответ

0

Для Oracle 11 используйте функцию listagg() и в первых колонках конкатенации запроса, во втором - сначала выберите отдельные значения.

Запрос 1:

select listagg(a||'-'||b, ',') within group (order by a, b) result from t 

RESULT 
------------------------------ 
1-2,1-11,3-4,5-6,7-8,9-10 

Запрос 2:

select listagg(a, ',') within group (order by a) result 
    from (select distinct a from t) 

RESULT 
------------------------------ 
1,3,5,7,9 

Для более старых версий вы можете использовать wmsys.wm_concat.

+0

thanks.if Мне нужно выбрать столбец c, d, вместе с результатом, как можно изменить как qury.as, когда я попытался m сталкиваться с ошибкой. – user3195273

+0

Мне нужно увидеть измененные данные запроса и ошибки, пожалуйста, предоставьте эту информацию, иначе я не смогу помочь. –

+0

проблема разрешена.thank u – user3195273

Смежные вопросы