似乎应该很容易更改这一行数据:
SalesTotal Refunds Discount Taxes
63093.05 -102.52 3905.11 2523.32
进入这个:
SalesTotal 63093.05
Refunds -102.52
Discount 3905.11
Taxes 2523.32
在SQL中使用PIVOT。 但是......在我发现的所有例子中;
http://www.izenda.com/Site/KB/FAQ/How-do-I-create-a-pivot-table-in-Microsoft-SQL- http://blog.sqlauthority.com/2008/05/22/sql-server-pivot-table-example/ http://www.mssqltips.com/sqlservertip/1019/crosstab-queries-using-pivot-in-sql-server/ http://msdn.microsoft.com/en-us/library/ms177410(SQL.105).aspx 等....
需要在PIVOT命令中进行添加聚合 我想做的就是把桌子放在一边。
这样做的任何方式?
答案 0 :(得分:2)
您应该寻找UNPIVOT
。以下是使用CROSS APPLY
获取所需结果的方法(假设您的所有列都具有兼容的数据类型):
SELECT x.Col,
x.Value
FROM YourTable t
CROSS APPLY
(
VALUES
('SalesTotal', t.SalesTotal),
('Refunds', t.Refunds),
('Discount', t.Discount),
('Taxes', t.Taxes)
) x(Col, Value);
答案 1 :(得分:1)
您需要UNPIVOT
而不是PIVOT
才能将列旋转为行
SELECT Type, value from
(SELECT * from Table1) T
UNPIVOT
( value for Type in ( [SalesTotal], [Refunds], [Discount], [Taxes])
) unpvt