怎么将表顺时针旋转90度

baidu_35758285 2016-12-14 02:37:59
转换为,怎么能实现动态转换。
...全文
237 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 6 楼 baidu_35758285 的回复:
这个还得做一次行列转换吧,我的科室远远不止一个。
那个 在SELECT VendorID, Employee, Orders 后面的字段 体现 你有几个科室
baidu_35758285 2016-12-14
  • 打赏
  • 举报
回复
@稳健老实人 这个还得做一次行列转换吧,我的科室远远不止一个。
  • 打赏
  • 举报
回复

例子
CREATE TABLE #pvt (VendorID int, Emp1 int, Emp2 int,
    Emp3 int, Emp4 int, Emp5 int);
GO
INSERT INTO #pvt VALUES (1,4,3,5,4,4);
INSERT INTO #pvt VALUES (2,4,1,5,5,5);
INSERT INTO #pvt VALUES (3,4,3,5,4,4);
INSERT INTO #pvt VALUES (4,4,2,5,5,4);
INSERT INTO #pvt VALUES (5,5,1,5,5,5);
GO
SELECT * FROM #pvt
--Unpivot the table.
SELECT VendorID, Employee, Orders
FROM 
   (SELECT VendorID, Emp1, Emp2, Emp3, Emp4, Emp5
   FROM #pvt) p
UNPIVOT
   (Orders FOR Employee IN 
      (Emp1, Emp2, Emp3, Emp4, Emp5)
)AS unpvt;
GO
/*
VendorID	Employee	Orders
1	Emp1	4
1	Emp2	3
1	Emp3	5
1	Emp4	4
1	Emp5	4
2	Emp1	4
2	Emp2	1
2	Emp3	5
2	Emp4	5
2	Emp5	5
3	Emp1	4
3	Emp2	3
3	Emp3	5
3	Emp4	4
3	Emp5	4
4	Emp1	4
4	Emp2	2
4	Emp3	5
4	Emp4	5
4	Emp5	4
5	Emp1	5
5	Emp2	1
5	Emp3	5
5	Emp4	5
5	Emp5	5
*/
卖水果的net 2016-12-14
  • 打赏
  • 举报
回复
SQL Server 2008 R2 及以前的版本,用 PIVOT 都只能处理一列。 要用case when 的方法拼接;
baidu_35758285 2016-12-14
  • 打赏
  • 举报
回复
百度的都是单列的。
  • 打赏
  • 举报
回复
UNPIVOT函数
卖水果的net 2016-12-14
  • 打赏
  • 举报
回复
楼主先百度一下 “SQL 行转列” 有问题再来追问;

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧