Oracle SQL行值作为列

时间:2015-06-05 05:21:24

标签: sql oracle

我有一个表(TableA),有3列(ColA,ColB,ColC)

ColA和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

,即所有结果行在ColB值ColumnNames

下的ColC值的一行中

1 个答案:

答案 0 :(得分:2)

您可以像这样使用PIVOTSQL 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)