2015-06-05 9 views
0

У меня есть таблица (TableA) с 3-мя столбцами (COLA, ColB, ColC)значения строк Oracle SQL, как колонки

колой и ColB первичные ключи

select * 
from TableA 
where ColA = '001'; 

дает мне эту

COLA COLB  COLC 
---- ----- -------- 
001 AA1  460 
001 AB1  380 
001 AC1  950 
001 AD1  null 
001 AE1  null 

мне нужен этот результат в этом формате

COLA COLC-AA1 COLC-AB1 COLC-AC1 COLC-AD1 COLC-AE1 
---- -------- -------- -------- -------- -------- 
001  460  380  950  null  null 

i.e все результирующие строки в одну строку со значениями ColC под значением ColB ColumnNames

+0

возможно дубликат [Oracle SQL шарнирного запроса] (http://stackoverflow.com/questions/4841718/oracle-sql- pivot-query) – sstan

+0

Вам нужно использовать функцию поворота – Moudiz

ответ

2

Вы можете использовать PIVOT следующим образом. SQL Fiddle

Запрос

SELECT COLA,"'AA1'","'AB1'","'AC1'","'AD1'","'AE1'" 
FROM tbl1 
PIVOT(MAX(COLC) for COLB IN('AA1','AB1','AC1','AD1','AE1')) 

ВЫХОД

COLA 'AA1' 'AB1' 'AC1' 'AD1' 'AE1' 
001 460 380 950 (null) (null) 
Смежные вопросы