.Pivot的用法体会:
语句范例:
select PN,[2006/5/30] as [20060530],[2006/6/2] as [20060602]
from consumptiondata a
Pivot (sum(a.M_qty) FOR a.M_date in ([2006/5/30],[2006/6/2])) as PVT 
order by PN
 
Table结构 Consumptiondata (PN,M_Date,M_qty)
order by PN可要可不要,并不重要,只是排序的作用
 
关键的是红色部分,解析如下,select 大家都知道,PN是 ConsumptionData表中的一个Column,
[2006/5/30]也是一个Column,他需要显示成[20060530],注意[2006/5/30]不是一个Value,而是一个Column.[2006/6/2]与[2006/5/30]一样.
Pivot ( ........... ) as PVT这个结构是固定格式,没有什么需要特殊说明的,当然PVT随便你给他一个 NICKNAME ,it doesn't make any differences.
sum(a.M_qty) 是我们希望显示出来的值,注意这个地方必须用汇总函数,否则语法不会过.
FOR a.M_date in ([2006/5/30],[2006/6/2])for 表示汇总的值要显示在哪一个Column下面
如果我们想让Sum(M_qty)显示在PN转换的Column下面,则可写为For PN, in 的清单表示我们关注哪些要查看的Column,注意再次强调是Column,不是Value. in的清单是Column清单,不是Value清单,是M_date的Value转换成的Column清单.
 
2.UnPivot
--此段可以直接在Sql 2005中执行
CREATE TABLE pvt (VendorID int, Emp1 int, Emp2 int,
Emp3 int, Emp4 int, Emp5 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
--select * from PVT
--Unpivot the table.
SELECT VendorID, Employee, Orders
FROM PVT
UNPIVOT (
 Orders FOR Employee IN ([Emp1], [Emp2], [Emp3], [Emp4], [Emp5])
)AS unpvt
GO
 
说明: Employee以 Column [Emp1]...为值, Orders以Column [Emp1]...的值为值

转载于:https://www.cnblogs.com/whr0623/archive/2008/12/04/1347341.html

SQL 2005中pivot and unpivot的用法相关推荐

  1. [SQL指令]使用 PIVOT 和 UNPIVOT,「扭转」查询的结果。

    原文出处:[SQL指令]使用 PIVOT 和 UNPIVOT,「扭转」查询的结果. http://www.dotblogs.com.tw/mis2000lab/archive/2010/12/24/m ...

  2. SQL Server 中 with tmp 临时表的用法

    SQL Server 中 with tmp 临时表的用法 ----------with临时表用法,有时候采用临时表比采用in的效率更高,避免了全表扫描. 实例中实现了查询普通题.大题.子题目的sql ...

  3. Sql语句中between与in的用法详解

    通常在写SQL语句中我们时不时就会用到between或者in,或者两者组合在一起,between的运算符用于 WHERE 表达式中,选取介于两个值之间的数据范围.BETWEEN 同AND 一起搭配使用 ...

  4. SQL Server中的锁类型及用法(转载)

    一. 为什么要引入锁 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新  A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读  ...

  5. SQL Server中LIKE和PATINDEX的用法

    在SQL Server中,能使用通配符的只有2个:LIKE.PATINDEX. 不过LIKE支持2种通配符转义,无限制最全面:而PATINDEX只支持最简单的通配符转义([]转义),限制较多. LIK ...

  6. SQL Server中Rowcount与@@Rowcount的用法 和set nocount on 也会更新@@Rowcount

    rowcount的用法: rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例, set rowcount 10 select * from 表A 这样的查询只 ...

  7. SQL Server中osql/sqlcmd的基本用法

    [转自] http://www.cnblogs.com/wontonJ/archive/2011/06/18/2084400.html 这段时间在做项目的时候,遇到一个问题,客户的程序要架设在自己的服 ...

  8. mysql @@rowcount_「rowcount」SQL Server中Rowcount与@@Rowcount的用法 - seo实验室

    rowcount rowcount的用法: rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例, set rowcount 10 select * from ...

  9. SQL Server中Rowcount与@@Rowcount的用法

    rowcount的作用就是用来限定后面的sql在返回指定的行数之后便停止处理,比如下面的示例,set rowcount 10 select * from 表A这样的查询只会返回表A中的前10条数据.它 ...

最新文章

  1. C语言:随笔10--共用体
  2. 与空连接相关的几条命令
  3. Could not find action or result
  4. android studio 模拟器中文乱码
  5. 20-Granule Protection Tables Library
  6. 垃圾优先型垃圾回收器调优
  7. Vue项目实战03 : vue中 meta 路由元信息
  8. 通过阅读 Douglas Crockford 的源码学习如何写 JSON parser(一)
  9. cad文本改宋体字型lisp_给CAD初学者的一些建议
  10. 台达b3伺服modbus通讯_台达ASDA-AB伺服与EVIEW触摸屏MODBUS通讯
  11. Java中jdk安装与环境变量配置
  12. 德标螺纹规格对照表_德标等螺纹对照表
  13. android 样式 下载,VolumeStyles软件下载官方
  14. TCP四次挥手中的2MSL是什么?
  15. 二分+秦九韶算法 求凸点
  16. Missing artifact oracle:ojdbc:jar:14:compile
  17. Camunda流程引擎事件(Events)介绍
  18. FreeRTOS 简介
  19. 【分享】unlock music解锁音乐项目CLI版本
  20. Python模块之Pandas 格式化数据

热门文章

  1. python合并两个数据框_python 学习的第五天 数据框合并
  2. 看图识物_看图识物:下面图里是什么植物呢?请朋友们评论区留言
  3. 一个给计算机写程序的人是谁,如果计算机是中国人发明的 写代码会是一种什么情况 程序员看了都头疼...
  4. python torch库_python安装torch踩过的坑
  5. scala 主构造函数_Scala-构造函数
  6. jQuery之高级选择器
  7. python函数(二)
  8. java整数翻转_java实现整数反转
  9. 优秀渗透工具资源整理(持续更新)
  10. 复盘从一个监控主机到核心路由沦陷