• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
拿一份干净工资,过一个简单生活
c#——最优雅的语言
博客园    首页    新随笔    联系   管理    订阅  订阅
sql server 2005行列轉換
表
ProductID OrderMonth SubTotal
1 5 100.00
1 6 100.00
2 5 200.00
2 6 200.00
2 7 300.00
3 5 400.00
3 5 400.00

SELECT ProductID, [5] AS 五月, [6] AS 六月, [7] AS 七月
FROM
Sales.Orders PIVOT
(
SUM (Orders.SubTotal)
FOR Orders.OrderMonth IN
( [5], [6], [7] )
) AS pvt

ORDER BY ProductID;

 

把列轉成行用UNPIVOT,用處不大吧

CREATE TABLE MyPvt (ProductID int, 五月int, 六月 int, 七月int); --建立MyPvt表
GO
  --将表5-5中所示的值插入到MyPvt表中

INSERT INTO MyPvt VALUES (1,100,100,0);
INSERT INTO MyPvt VALUES (2,200,200,200);
INSERT INTO MyPvt VALUES (3,800,0,0);

  --执行UNPIVOT

SELECT ProductID, OrderMonth, SubTotal
FROM
 MyPvt UNPIVOT
 (SubTotal FOR OrderMonth IN
  (五月, 六月, 七月)
 )AS unpvt;

posted on 2008-12-16 08:21  老头  阅读(400)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3