科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何编写SQL Server 2005 PIVOT查询(1)

如何编写SQL Server 2005 PIVOT查询(1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

PIVOT是新引入SQL Server 2005的运算符,它让你能够将行级数据旋转成为列表数据,而不需要像先前版本的SQL Server一样使用CASE语句。

作者:赛迪网技术社区 来源:赛迪网技术社区 2007年8月30日

关键字: 查询 数据库 SQL Server SQL Server 2005

  • 评论
  • 分享微博
  • 分享邮件

如何编写SQL Server 2005 PIVOT查询

PIVOT是新引入SQL Server 2005的运算符,它让你能够将行级数据旋转成为列表数据,而不需要像先前版本的SQL Server一样使用CASE语句。 X8]@nj,5  
w#:Kpv<[B_  
CASE语句查询 aP{s=|z[ll  
'<L _Cp-9  
对于数据库开发人员来说,将行级数据转换为列级数据并不是什么新东西。在SQL Server以前的版本里,要获得所需要的跨表格数据集就要用到一系列CASE语句和聚合查询。虽然这种方式让开发人员具有了对所返回数据进行高度控制的能力,但是编写出这些查询是一件很麻烦的事情。 NBPa%ln  
!> ,KcB-  
为了看一下这些CASE语句是如何使用的。我们需要一些测试数据。运行列表A里的脚本能够创建一个SalesHistory表格并把数据加载到表格里。 >! m@>!  
x-G'b-$%U  
现在我可以编写一个基于CASE语句的PIVOT查询。这个查询的目标是按照年份将每件产品的销售状况集中起来,这些产品包括:BigScreen、PoolTable和Computer。每件产品自己的销售数据都放在专用的列里。列表B里是CASE语句查询的脚本。 m3>"_#6\  
_B&NZZa  
这个查询虽然很简单,相对容易编写,但是很繁复。你必须明确地为每个想要转换成列表数据的行输入一个CASE语句,这一点意思都没有。如果有个程序能够帮你自动完成这项任务就好了——这就是PIVOT运算符的作用之所在。 Wg(t>\}3  
{wzP@(}  
PIVOT l|b :l`B,V  
(8/sqg=  
由于SQL Server 2005有了新的PIVOT运算符,就不再需要CASE语句和GROUP BY语句了。(每个PIVOT查询都涉及某种类型的聚合,因此你可以忽略GROUP BY语句。)PIVOT运算符让我们能够利用CASE语句查询实现相同的功能,但是你可以用更少的代码就实现,而且看起来更漂亮。列表C是一个示例PIVOT查询,它模仿的是我们的CASE语句查询。 V|>u|.hbQ  
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章