Sql Server 2008 行列互转问题
来源:互联网 发布:易视网络电视台直播 编辑:程序博客网 时间:2024/05/22 14:26
思路:
1、在代码中拆分、组装数据, 如:高级语言、SQL存储过程
2、使用 SQL 中 Case、Group by 分组
3、自定义 SQL 函数
4、使用 SQL 中游标 或 XML Path
5、PIVOT 和 UNPIVOT
实例:
1、行转列: PIVOT
示例:
源表:
PIVOT 结果表:
测试 SQL 语句:
CREATE TABLE dbo.pvt ( month int, val int);
GO
INSERT INTO dbo.pvt VALUES
,(2,20)
,(3,30)
,(4,40)
,(5,50)
,(6,60)
,(7,70)
,(8,80)
,(9,90)
,(10,100)
,(11,110)
,(12,120)
GO
declare @sql varchar(100)
select @sql = isnull(@sql + '],[' , '') + Cast(month as varchar) from pvt group by month
set @sql = '[' + @sql + ']'
exec ('select * from (select * from pvt) a pivot (max(val) for month in (' + @sql + ')) b')
2、列转行:
示例:
源表:
UNPIVOT 结果表:
测试 SQL 语句:
CREATE TABLE pvt (VendorID int, Emp1 int, Emp2 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
--Unpivot the table.
SELECT VendorID, Employee, Orders
FROM
UNPIVOT
)AS unpvt;
GO
参考:
You can use the PIVOT and UNPIVOT relational operators to change a table-valued expression into another table.
PIVOT rotates a table-valued expression by turning the unique values from one column in the expression into multiple columns in the output, and performs aggregations where they are required on any remaining column values that are wanted in the final output.
UNPIVOT performs the opposite operation to PIVOT by rotating columns of a table-valued expression into column values.
Reference:
http://technet.microsoft.com/zh-cn/library/ms177634.aspx
- Sql Server 2008 行列互转问题
- SQL 行列互转
- SQL行列互转
- SQL行列互转
- SQL行列互转
- SQl行列互转
- SQL Server 2008 行列转换操作
- sql server 2005 行列转置
- SQL Server 表行列转置
- Sql server 2005 行列与转
- sql server 行列转换
- sql server 行列转换
- SQL Server 行列转换
- sql server行列互换
- SQL SERVER行列转换
- SQL Server 行列转换
- sql server行列转换
- sql server行列转化和行列置换
- Sql Server 2008命令大全
- Tomcat下载文件名为中文的文件
- 服务器返回状态码
- 中国电信内外受困 去电信化思路待改
- 方兴东:博客网倒掉是十亿美金的教训
- Sql Server 2008 行列互转问题
- js基本语法
- 第二章、基础网络概念
- 微软暑期实习笔试题解析
- [转载]藏在人口数据中的商业秘密
- cocos2d-x显示中文,补充方法(3)
- ASP.NET连接Sql Server 数据库的问题
- 如何让自己的网站在IE地址栏显示个性图标
- 人事经理常问的面试问题及答案