一,行转列 先建立测试数据 1.1 用传统的case when 语法实现行转列。 1.2 用sqlserver2005以后新增加的pivot语法实现行转列。 pivot的语法如下: pivot分为3个步骤: 1,进行行列转换 2,定义检索数据源(select employee ,weekname,i ...
分类:
数据库 时间:
2016-12-24 13:51:59
阅读次数:
370
语法: 模拟数据: INSERT INTO WEEK_INCOME 一般我们最经常使用的查询是查询一周中每天或某几天的收入,例如查询周一至周日全部的收入: 得到如下的查询结果集: WEEK INCOME 星期一 1000 星期二 2000 星期三 3000 星期四 4000 星期五 5000 星期六 ...
分类:
其他好文 时间:
2016-12-13 19:05:47
阅读次数:
132
SQL 行转列和列转行 行列互转,是一个经常遇到的需求。实现的方法,有case when方式和2005之后的内置pivot和unpivot方法来实现。 在读了技术内幕那一节后,虽说这些解决方案早就用过了,却没有系统性的认识和总结过。为了加深认识,再总结一次。 行列互转,可以分为静态互转,即事先就知道 ...
分类:
数据库 时间:
2016-12-09 16:06:42
阅读次数:
247
1.建表及插入数据,2.使用CASE语句查询,3.使用PIVOT行转列,4.PIVOT动态获取列,5.使用UNPIVOT列转行 ...
分类:
数据库 时间:
2016-12-02 07:42:02
阅读次数:
246
select * from( select sum(case MONTH(purchase_date) when '1' then SumMoney else 0 end) as January,sum(case MONTH(purchase_date) when '2' then SumMoney ...
分类:
数据库 时间:
2016-11-21 22:55:53
阅读次数:
228
这段sql的意思 是 查询出所有客户收款信息 然后按客户分组 分组后 然后将这个客户的所有首款的金额放在一组 然后聚合 组成首款字段 所有尾款金额 放在一组 然后sum 聚合 组成尾款字段 最终查出 统计的时候 或者 做运算的时候非常有用 如果需要列转行 可以使用union方式 比如我们上面这个表 ...
分类:
数据库 时间:
2016-11-19 12:13:31
阅读次数:
227
在做数据统计的时候,行转列,列转行是经常碰到的问题。case when方式太麻烦了,而且可扩展性不强,可以使用 PIVOT,UNPIVOT比较快速实现行转列,列转行,而且可扩展性强 一、行转列 1、测试数据准备 2、行转列sql 执行结果: 二、列转行 1、测试数据准备 2、列转行的sql 执行结果 ...
分类:
数据库 时间:
2016-11-07 01:35:19
阅读次数:
317
将下面表(1)格式的数据转换为表(2)格式的数据。很明显,这是一个行转列的要求,本想在数据库中行转列,因为在数据库中行转列是比较简单的,方法可以参考本站SQLServer中(行列转换)行转列及列转行且加平均值及汇总值,但因其它需求,最终需将该转化搬到C#中进行了。 (表1) 表(2) 不多说了,下面 ...