我正在使用SQL Server 2012。我有像
这样的表格col1 col2 col3
1 abc AA
2 xyz BB
3 def CC
我想将此表格转换为
col1 col2 col3_AA col3_BB col3_CC
1 abc AA
2 xyz BB
3 def CC
请编辑表格格式。我无法做到
答案 0 :(得分:1)
条件聚合可能会帮助您
select col1, col2,
max(case when col3 = 'AA' then col3 end) col3_AA,
max(case when col3 = 'BB' then col3 end) col3_BB,
max(case when col3 = 'CC' then col3 end) col3_CC
from table
group by col1, col2
order by col1
答案 1 :(得分:0)
试试这个
<强> 1。静态PIVOT查询。
例如,如果列“ITEM_HEAD_ID”值只能是1,2和3,那么这就是您所需要的。根据您提供的数据,您可以使用以下查询:
SELECT *, (ISNULL([1], 0 ) + ISNULL([2], 0) + ISNULL([3], 0)) AS [Total]
FROM (SELECT [TRXID],
[ITEM_HEAD_ID],
[ITEM_HEAD_AMT]
FROM [Table]) AS t
PIVOT (MAX([ITEM_HEAD_AMT])
FOR [ITEM_HEAD_ID] IN ([1], [2], [3])) AS p;
注意:[表格]是表格的名称。 结果:
TRXID 1 2 3 Total
6 100.00 100.00 300.00 500.00
7 100.00 100.00 300.00 500.00