T-SQL Recipes之Dynamic PIVOT and UNPIVOT】的更多相关文章

PIVOT PIVOT在行转列的时候经常用到,最便捷的方式就是通过示例来理解它的作用. 示例1 Query to Return Select Product Data from AdventureWorks SELECT PRODUCT.Name AS product_name , PRODUCT.Color AS product_color , PRODUCT_INVENTORY.LocationID , PRODUCT.ReorderPoint , PRODUCT_INVENTORY.Qua…
官方文档:http://technet.microsoft.com/zh-cn/library/ms177410(v=SQL.105).aspx 可以使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表.PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合.UNPIVOT 与 PIVOT 执行相反的操作,将表值表达式的列转换为列值. 注意 对升级到 SQL Server 2005 或更高版本的数据库使…
使用过SQL Server 2000的人都知道,要想实现行列转换,必须综合利用聚合函数和动态SQL,具体实现起来需要一定的技巧,而在SQL Server 2005中,使用新引进的关键字PIVOT/UNPIVOT,则可以很容易的实现行列转换的需求. 在本文中我们将通过两个简单的例子详细讲解PIVOT和UNPIVOT的用法. PIVOT是行转列,用法如下: 假如表结构如下:      id  name quarter  profile      1     a        1         10…
在mssql中大家都知道可以使用pivot来统计数据,实现像excel的透视表功能 一.MSsqlserver中我们通常的用法 1.Sqlserver数据库测试 ---创建测试表 Create table s( [name] nvarchar(50), book nvarchar(50), saledNumber int ) ----插入测试数据 insert into s ([name],book,saledNumber) values('小王','java从入门到精通',10); inser…
原文 http://www.gyurcit.hu/pivot.html Dynamic Pivot table wizard This stored procedure generate dynamic crosstable with multiple pivot columns by 4+1 parameters. 1. P_Row_Field Name of field that reperesent the spreadsheet's rows 2. P_Column_Field Name…
原文:sql pivot.unpivot和partition by用法 演示脚本 from sys.sysobjects where name = 'Student' AND type = 'U') BEGIN CREATE table Student( ID int identity primary key, ClassID , --班级ID CourseName ) , --课程 Name ) , --姓名 Score --成绩 ) END GO from Student) begin IN…
原文:sql 行转列 PIVOT 列转行 UNPIVOT 一: 现有表一(t_table1),想转为表二(t_table2)的格式. 表一: 年 公司 收入 2013 公司1 12 2013 公司2 22 2013 公司3 32 2012 公司1 42 2012 公司2 52 2012 公司3 62 表二: 年 公司1 公司2 公司3 2012 42 52 62 2013 12 22 32 可使用sql2005之后提供的PIVOT 具体操作如下: select  *  from   t_tabl…
原文地址:https://www.cnblogs.com/linJie1930906722/p/6036714.html 在做数据统计的时候,行转列,列转行是经常碰到的问题.case when方式太麻烦了,而且可扩展性不强,可以使用 PIVOT,UNPIVOT比较快速实现行转列,列转行,而且可扩展性强 一.行转列 1.测试数据准备 CREATE TABLE [StudentScores] ( [UserName] NVARCHAR(20), --学生姓名 [Subject] NVARCHAR(3…
基本语法 select * from Mould pivot ( count(ID)for ProductTypeCode in ( [FC], [RCU], [RCD] )) as PVT; with P as ( select * from Mould ) select * from P pivot ( count(ID)for ProductTypeCode in ( [FC], [RCU], [RCD] )) as PVT; 一.sql行转列PIVOT: 二.sql列转行unPIVOT:…
一.使用PIVOT和UNPIVOT命令的SQL Server版本要求 1.数据库的最低版本要求为SQL Server 2005 或更高. 2.必须将数据库的兼容级别设置为90 或更高. 3.查看我的数据库版本及兼容级别. 如果不知道怎么看数据库版本或兼容级别的话可以在SQL Server Management Studio新建一个查询窗口输入:print @@version,运行之后在我的本机上得到: Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600…