2013-08-20 2 views
-1

Я следующие данные в OracleКак транспонировать строки в столбцы

Number Text 
12345 ab 
12345 abc 
12345 acbd 

Как я могу преобразовать его стать:

Number Text1 Text2 Text3 
12345 ab abc abcd 

Как это сделать с помощью SQL в Oracle?

+0

Что именно вы хотели бы сделать с вашими данными? Вы хотите вставить или выбрать из своего стола? – user75ponic

+0

Посмотрите на оператора PIVOT из Oracle 11. – jods

ответ

1

Для того, чтобы повернуть несколько строк данных в столбцы, сначала я хотел бы использовать row_number(), а затем вы можете использовать агрегатную функцию с выражением CASE, чтобы получить конечный результат:

select "Number", 
    max(case when seq = 1 then "Text" end) Text1, 
    max(case when seq = 2 then "Text" end) Text2, 
    max(case when seq = 3 then "Text" end) Text3 
from 
(
    select "Number", "Text", 
    row_number() over(partition by "Number" order by "Text") seq 
    from yourtable 
) d 
group by "Number"; 

См SQL Fiddle with Demo

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