我有一个表(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值的一行中答案 0 :(得分: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)