`
sh2015yao
  • 浏览: 136279 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用 PIVOT 和 UNPIVOT

 
阅读更多

PIVOT 提供的语法比一系列复杂的 SELECT...CASE 语句中所指定的语法更简单和更具可读性。有关 PIVOT 语法的完整说明,请参阅 FROM (Transact-SQL)

以下是带批注的 PIVOT 语法。

SELECT <非透视的列>,

[第一个透视的列] AS <列名称>,

[第二个透视的列] AS <列名称>,

...

[最后一个透视的列] AS <列名称>,

FROM

(<生成数据的 SELECT 查询>)

AS <源查询的别名>

PIVOT

(

<聚合函数>(<要聚合的列>)

FOR

[<包含要成为列标题的值的列>]

IN ( [第一个透视的列], [第二个透视的列],

... [最后一个透视的列])

) AS <透视表的别名>

<可选的 ORDER BY 子句>;

 

 

 

 

参考资料:

http://technet.microsoft.com/zh-cn/library/ms177410.aspx

 

 

create table tb(Name varchar(10),Class varchar(10),Scoure int)

insert into tb values('张三','语文',74)

insert into tb values('张三','数学',83)

insert into tb values('张三','物理',93)

insert into tb values('李四','语文',74)

insert into tb values('李四','数学',84)

insert into tb values('李四','物理',94)

go

select*from tb


select * from tb
pivot ( Max(Scoure) for Class in ([语文],[数学],[物理]) ) a

 

 

转换后运行结果:

Name 语文 数学 物理
------ ----------- ----------- -----------
李四 74 84 94
张三 74 83 93

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    枢纽表达式PIVOT和UNPIVOT的简单用法,sql server 2005,列转成行

    枢纽表达式PIVOT和UNPIVOT的简单用法 sql 列转成行 sql server 2005

    pivot与unpivot函数

    pivot 与 unpivot 函数是SQL05新提供的2个函数 灰常灰常的实用

    pivot_unpivot

    Oracle 11g中的pivot和unpivot转换操作

    SQL行列转换 Pivot UnPivot

    SQL行列转换 Pivot UnPivot

    Sql_Servcer行转列及列转行说明.docx

    使用 PIVOT 和 UNPIVOT 关系运算符将表值表达式更改为另一个表。PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合。UNPIVOT 与 PIVOT ...

    Pivot/unPivot:将平面数据集分组到数据透视表中并将其反透视-matlab开发

    例如,您可以将任何员工在过去 10 个月内销售的总金额相加,或者您可以计算按地区和销售员签订的合同数量等等...... 有关详细的帮助和说明,请参阅已发布的 M 文件或函数的帮助。 有关示例,请参阅附加的快照。 ...

    SQLServer行列互转实现思路(聚合函数)

    主要介绍了SQLServer行列互转实现思路,使用聚合函数pivot/unpivot实现行列互转,感兴趣的小伙伴们可以参考一下

    SQL行转列和列转行-静态互转-动态互转

    有case when方式和2005之后的内置pivot和unpivot方法来实现,行列互转,可以分为静态互转,动态互转。

    SQL2005的排名函数以及透析函数(博客源码)

    博客文章地址:http://blog.csdn.net/pfe_nova/article/details/41357435 SQL2005之后添加的几个排名函数以及透析与反透析关键字,主要有Row_Number、RANK、DENSE_RANK、NTILE函数,pivot以及unpivot关键字

    oracle 11g overview

    SQL 操作:Pivot 和 Unpivot 使用简单的 SQL 以电子表格类型的交叉表报表显示任何关系表中的信息,并将交叉表中的所有数据存储到关系表中。 SecureFiles 探究下一代 LOB:LOB 加密、压缩、消除重复和异步性。 ...

    Oracle行转列之pivot

    oracle数据库最详细的行转列资料,是官方文档的详细介绍版,中文的

    microsoft sql server 2008 T-sql fundamentals

    chapter1:background to t-sql query chapter2:single-table ...chapter7:pivot ,unpivot,and groupint sets chapter8:data modification chapter9:transactions and concurrency chapter10:programmable objects

    SQL行转列和列转行代码详解

    实现的方法,有case when方式和2005之后的内置pivot和unpivot方法来实现。 在读了技术内幕那一节后,虽说这些解决方案早就用过了,却没有系统性的认识和总结过。为了加深认识,再总结一次。 行列互转,可以分为静态...

    重塑矩阵:(旋转和反旋转)-matlab开发

    SAS 的 TRANSPOSE 过程和 T-SQL 的 PIVOT 和 UNPIVOT 语句相关的两个操作示例,请参见所附屏幕截图。

    深入SQL中PIVOT 行列转换详解

    T-SQL语句中,Pivot运算符用于在列和行之间对数据进行旋转或透视转换,PIVOT命令可以实现数据表的列转行,同时执行聚合运算,UNPIVOT则与其相反,实现数据的行转列。

    Sql实现行列转换方便了我们存储数据和呈现数据

    从MS Sql Server 2005微软就推出了pivot和unpivot实现行列转换,这极大的方便了我们存储数据和呈现数据。今天就对这两个关键字进行分析,结合实例讲解如何存储数据,如何呈现数据。 例如学生选课和成绩系统中就有...

    SQL SERVER彻底查询

    sql 所有查询语句,如何使用全新的派生表 ...如何使用全新的pivot 如何使用全新的unpivot 如何使用全新的apply 如何使用全新的except 与intersect 运算符号 如何使用全新的“公用表达式” Compute[by]字句的使用技巧

    Dynamic.SQL.Applications.Performance.and.Security.148

    This book is an introduction and deep-dive into the many uses of dynamic SQL in Microsoft ...Chapter 9: Dynamic PIVOT and UNPIVOT Chapter 10: Solving Common Problems Chapter 11: Additional Applications

    SQL袖珍参考手册(第3版)

    Oracle's support of the recursive WITH syntax, and addition of PIVOT and UNPIVOT operators Functions new to Oracle, such as LISTAGG, NTH_VALUE, and more PostgreSQL’s support of recursive WITH and ...

Global site tag (gtag.js) - Google Analytics