我有一个表(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
我需要这种格式的结果
COLA AA1 AB1 AC1
----------- ----------- ----------- -----------
001 460 380 950
,即将所有结果行分成一列到不同的对应列。
答案 0 :(得分:2)
PIVOT
版本:
SELECT *
FROM
(
SELECT
*
FROM
TableA
WHERE ColA = '001'
)
PIVOT
(
MAX(ColC)
FOR ColB IN ('AA1','AB1','AC1')
)
答案 1 :(得分:1)
试试这个
select
COLA,
max(case when COLB='AA1' then COLC end) as AA1
max(case when COLB='AB1' then COLC end) as AB1
max(case when COLB='AC1' then COLC end) as AC1
from table
group by COLA