官方介绍链接

下面是SQL示例

drop table tb
create table tb(name varchar(10),course varchar(10),score int,sex char(4))insert into tb values('张三','语文',74,'男')insert into tb values('张三','语文',1,'男')
insert into tb values('张三','数学',83,'男')insert into tb values('张三','物理',93,'男')
insert into tb values('张三','english',60,'女')insert into tb values('李四','语文',74,'女')insert into tb values('李四','数学',84,'女')insert into tb values('李四','物理',94,'女')
SELECT * FROM tb

PIVOT 可以实现行转列
效果像是case when的简化语法,提供更少的信息而更多的使用语意推断,每个PIVOT 都可以使用case when等价的书写出来,使用过程中内容需要通过聚合函数转换来确定多条相同的值如何处理

--行转列SELECT * FROM TB PIVOT(sum(score) FOR course IN (语文,数学,物理,english)) aselect name,sex,Sum(case when course = '语文' then score end) 语文,sum(case when course = '数学' then score end) 数学,sum(case when course = '物理' then score end) 物理,sum(case when course = 'english' then score end) englishfrom TBgroup by name,sex

UNPIVOT可以实现列转行
UNPIVOT不需要聚合函数,因为转行过程中不会存在重复的情况

--列转行
SELECT * FROM
(
SELECT * FROM TB
PIVOT(sum(score) FOR course IN (语文,数学,物理)) a
)
B UNPIVOT( score for course in([语文],[数学],[物理]) ) c

sql 引用自 http://blog.sina.com.cn/s/blog_6438b0e50101r7ww.html,含有部分修改

Sql server 行列转换 PIVOT UNPIVOT相关推荐

  1. SQL Server 2005之PIVOT/UNPIVOT行列转换

    SQL Server 2005之PIVOT/UNPIVOT行列转换 作者: NinGoo(http://ningoo.itpub.net) 发表于: 2007.04.18 11:49 分类: SQL ...

  2. SQL Server中行列转换 Pivot UnPivot (转载)

    SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现PIVOT的一般语法是:PIV ...

  3. [转载]SQL Server行列转换实现

    一.Pivot和UnPivot介绍 1.Pivot介绍 PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVO ...

  4. SQL Server 行列转换(1)

    参考前一个SQL的行列转换例子http://www.cnblogs.com/insus/articles/1969896.html ,觉得不够自由,需要去预先知道记录的内容去定义行或列. 下面这个方法 ...

  5. SQL Server 2005之PIVOT/UNPIVOT行列转换(转)

    SQL Server2005引入了很多迎合开发者口味的新特性,虽然改动不大,却大大了减少了开发者的工作量,这种替用户考虑的开发思路,值得称赞. 在SQL Server2000中,要实现行列转换,需要综 ...

  6. 【转】SQL Server中行列转换 Pivot UnPivot

    PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (-) )AS P ...

  7. SQL Server中行列转换 Pivot UnPivot

    PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (-) )AS P ...

  8. isnull pivot server sql_SQLServer行列转换 Pivot UnPivot

    PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (-) )AS P ...

  9. SQL Server 行列转换(2)

    参考前一个例子http://www.cnblogs.com/insus/articles/1969896.html,现想使用另外一种方式来处理行列转换,实现下面效果: 参考代码: View Code ...

最新文章

  1. 电商运营-跨境开网店全图解
  2. RDKit | 可视化官能团, 分子聚类, 相似图, 化合物高亮和骨架网络
  3. 旧手机的新玩法:postmarketOS 已适配上百款安卓手机
  4. Leetcode1689. 十-二进制数的最少数目[C++题解]:贪心、找规律简单题
  5. jboss启动多个实例
  6. 4.8 计算机网络之网络层设备路由器
  7. 计算机网络就业范围分析,计算机网络技术专业就业前景怎么样「就业形势分析」...
  8. 508. 出现次数最多的子树元素和
  9. 薅羊毛 Colab使用外部数据的7种方法!
  10. 中国姜黄根提取物行业市场供需与战略研究报告
  11. 课时13—横屏竖屏事件
  12. Ubuntu 12.04 MTK环境配置说明
  13. tomcat 访问权限设置
  14. mysql connectors层_mysql底层工作原理
  15. java五子棋开题_五子棋 开题报告
  16. Hinton、LeCun、Bengio等人获得2022 年阿斯图里亚斯公主技术和科学研究奖!
  17. ios 裁剪框大小_ios – 如何将视频裁剪为特定大小?
  18. 设备管理 android问号,设备管理器里有问号怎么办
  19. 阴天快乐 -- 陈奕迅(eason)
  20. 【游戏逆向】FPS游戏自瞄透视模块动态加载分析

热门文章

  1. ZCMU计算机网络期中(1-计算机网络概论,网络体系结构与网络协议,物理层)
  2. 思维题:25匹马,5个赛道,求选出速度最快的3匹马最少需要多少次比赛?
  3. android.intent.action.MAIN和singleTask模式 的奇怪问题
  4. 优秀网址导航国内篇(更新于20170408)
  5. 详解拦截器和过滤器的区别
  6. 我的世界服务器展示自定义图片,我的世界装逼小技巧 怎么在自制地图中显示自己的头像...
  7. window 访问samba提示:无任何网络提供程序接受指定的网络路径
  8. java applet配置_最简单的Java Applet程序
  9. 评论留言用html怎么做,利用JS实现评论留言发布表单代码
  10. 吃豆人,一个小游戏,使用第三方图形库EasyX