sql server 2005 中的PIVOT和UNPIVOT中的应用
来源:互联网 发布:mysql 查询最小值记录 编辑:程序博客网 时间:2024/05/01 13:26
现有一张表(没有现成的表,临时产生)格式如下:
机器1 机器2 机器3 机器4 机器5 机器6
组别1 1 2 3 4 5 6
组别2 5 9 7 2 1 3
组别3 9 5 6 4 4 3
现在想转换成如下格式:
组别1 组别2 组别3
机器1 1 5 9
机器2 2 9 5
机器3 3 7 6
机器4 4 2 4
机器5 5 1 4
机器6 6 3 5
--测试环境
declare @t table(zb varchar(10),机器1 int,机器2 int,机器3 int,机器4 int,机器5 int,机器6 int)
insert into @t select '组别1',1,2,3,4,5,6
union all select '组别2',5,9,7,2,1,3
union all select '组别3',9,5,6,4,4,3
SELECT * FROM
(
SELECT Employee,zb,Orders
FROM
(SELECT zb, 机器1, 机器2, 机器3, 机器4, 机器5, 机器6
FROM @t) p
UNPIVOT
(Orders FOR Employee IN
(机器1, 机器2, 机器3, 机器4, 机器5, 机器6)
)AS unpvt
) T
PIVOT
(MAX(ORDERS)
for zb in ([组别1],[组别2],[组别3])
)as pt
--结果
/**//*
Employee 组别1 组别2 组别3
-------------------------------------------------------------------------------------------------------------------------------- ----------- ----------- -----------
机器1 1 5 9
机器2 2 9 5
机器3 3 7 6
机器4 4 2 4
机器5 5 1 4
机器6 6 3 3
(6 行受影响)
*/
declare @t table(zb varchar(10),机器1 int,机器2 int,机器3 int,机器4 int,机器5 int,机器6 int)
insert into @t select '组别1',1,2,3,4,5,6
union all select '组别2',5,9,7,2,1,3
union all select '组别3',9,5,6,4,4,3
SELECT * FROM
(
SELECT Employee,zb,Orders
FROM
(SELECT zb, 机器1, 机器2, 机器3, 机器4, 机器5, 机器6
FROM @t) p
UNPIVOT
(Orders FOR Employee IN
(机器1, 机器2, 机器3, 机器4, 机器5, 机器6)
)AS unpvt
) T
PIVOT
(MAX(ORDERS)
for zb in ([组别1],[组别2],[组别3])
)as pt
--结果
/**//*
Employee 组别1 组别2 组别3
-------------------------------------------------------------------------------------------------------------------------------- ----------- ----------- -----------
机器1 1 5 9
机器2 2 9 5
机器3 3 7 6
机器4 4 2 4
机器5 5 1 4
机器6 6 3 3
(6 行受影响)
*/
- sql server 2005 中的PIVOT和UNPIVOT中的应用
- sql server 2005 中的PIVOT和UNPIVOT中的应用
- SQL Server 2008中的Pivot和UnPivot
- oracle中的Pivot 和Unpivot
- SQL Server 2005 T-SQL学习笔记:PIVOT和UNPIVOT
- sql server 行列转换PIVOT 和 UNPIVOT
- SQL SERVER中PIVOT和UNPIVOT
- SQL Server 2005中PIVOT與UNPIVOT
- 关于sqlserver中的pivot和 unpivot
- sql server行转列 Pivot UnPivot
- sql server 行转列 Pivot UnPivot
- Sql Server函数大全(二)---SQL Server 2005 中行列转换(Pivot 和 UNPivot的使用)
- 使用 PIVOT 和 UNPIVOT(MS SQL Server行列转换)
- SQL Server 2005 中行列转换(Pivot 和 UNPivot的使用)
- SQL Server 2005之PIVOT/UNPIVOT行列转换
- SQL Server 2005之PIVOT/UNPIVOT行列转换
- SQL Server 2005之PIVOT/UNPIVOT行列转换
- SQL Server 2005之PIVOT/UNPIVOT行列转换(转)
- 嵌入式操作系统 uClinux
- 多功能DataGridView打印类(WinForm C#)
- .net
- 新闻联播的惊人发现
- 嵌入式Linux系统的设计与应用
- sql server 2005 中的PIVOT和UNPIVOT中的应用
- Linux字符设备驱动程序的设计
- 省份城市联动下拉列表
- squid 在80端口无法启动
- uClinux移植和分析(1)
- 网页上浮动的QQ客服代码
- uClinux移植和分析(2)
- Oracle之函数与触发器
- 单独存放文件的script