把内表的行列转换,网上的例子很多,但是新人想看懂,几乎很难,所以总结下我是怎么完成的. 比如:你的内表如图: 你想让内表最后展示成这样:如图: 那么完成之后会是这样: 完成这个过程,得用到动态内表.看代码: , bezei LIKE zchannel-bezei, "销售办事处 zdate LIKE zchannel-zdate, "日期 salesamount LIKE zchannel-salesamount, "总额 END OF itab8. 先排序: SORT it
SQL Server中行列转换 Pivot UnPivot PIVOT用于将列值旋转为列名(即行转列),在SQL Server 2000可以用聚合函数配合CASE语句实现 PIVOT的一般语法是:PIVOT(聚合函数(列) FOR 列 in (-) )AS P 完整语法: table_source PIVOT( 聚合函数(value_column) FOR pivot_column IN(<column_list>) ) UNPIVOT用于将列明转为列值(即列转行),在SQL Server 2
SQL通过pivot进行行列转换 数据透视 可直接在sql server 运行 传统操作 和 pivot create table XKCl (name nchar(10) not null, 学科 nchar(10) not null, 成绩 int not null, 考试 nchar(10) not null ) insert into dbo.XKCJ values ('张三','语文',79,'期中') insert into dbo.XKCJ values ('李四','语文',85
1. 介绍说明 前段时间组内的小伙伴在升级维护项目中,经常涉及一些复杂的数据转换问题,让我去看下有些地方怎么处理,我发现好多都是涉及到行列转换的问题,处理起来经常会比较麻烦,借此也总结一下,方便以后的查阅使用.该总结参照了网上的一些资料,也做了一些变动,如有更好的方法也欢迎指出. 演示的脚本见 3.测试数据脚本 2. 例子演示 2.1 实现行转列 (1) Case WHEN 实现行转列 /*-----1.1 Case WHEN 实现行转列----------*/ --(1)静态SQL SELEC
所谓表旋转,就是将表的行转换为列,或是将表的列转换为行,这是从SQL Server 2005開始提供的新技术.因此,如果希望使用此功能,须要将数据库的兼容级别设置为90.表旋转在某些方面也是攻克了表的数据存储和实际须要之间的矛盾.比如.图9-4所看到的的是一个典型的产品销售统计表,这样的格式尽管便于阅读,可是在进行数据表存储的时候却并不easy管理,产品销售数据表通常须要设计成图9-5所看到的的结构. 这样就带来一个问题,用户既希望数据easy管理.又希望能够生成一种能够easy阅读的表格数据.
以前面试老遇到一个行列转换的问题,今天没事,顺便记录一下 假设有这样一张表,如下图,创建表就不说了,直接建或者SQL语句都行 sql语句如下 --第一种 select name as 姓名, max(case Subject when '语文' then Result else 0 end) as 语文, max(case Subject when '数学' then result else 0 end) as 数学, max(case Subject when '英语' then Result