Oracle11以后的行列转换】的更多相关文章

Oracle11以后,行列转换有了新的方法. 下面的是已经疏通过的代码,请放心使用... With AA as ( Select A,B,C,row_number() over (partition by B order by b) D from ( Select 10 A, 11 B, 12 C from dual union select 20,11,22 from dual union select 30 , 21 , 32 from dual ) ) Select * from AA p…
注:本文使用的数据库表为oracle自带scott用户下的emp,dept等表结构. 通过一个例子来说明行列转换: 需求:查询每个部门中各个职位的总工资 按我们最原始的思路可能会这么写:       这种结果虽然也能满足要求,但是极难阅读,我们使用oracle中的decode()函数进行改写: 这样的话就实现了需求要求的功能,其实这就是一种行列转换的方式,这是通过decode()函数实现的,是oracle独有的一个函数,如果使用通用的sql语句,那么该如何实现上面的查询结果呢?当然我们可以通过嵌…
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 Server 2000的人都知道,要想实现行列转换,必须综合利用聚合函数和动态SQL,具体实现起来需要一定的技巧,而在SQL Server 2005中,使用新引进的关键字PIVOT/UNPIVOT,则可以很容易的实现行列转换的需求. 在本文中我们将通过两个简单的例子详细讲解PIVOT和UNPIVOT的用法. PIVOT是行转列,用法如下: 假如表结构如下:      id  name quarter  profile      1     a        1         10…
在Oracle中,如果要实现行列转换,较为常见的是用DECODE和CASE语句.对于简单的行列转行,DECODE和CASE语句尚能应付.在逻辑比较复杂,分组聚合较多的场景中,DECODE和CASE语句则力有不逮.而pivot则可完美解决这一切. 首先,我们来看看Oracle对于其的解释: 可见,pivot是数据仓库中的关键技术,它利用交叉查询(crosstabulation query)将行转换为列. 基本语法如下: SELECT .... FROM <table-expr> PIVOT (…
原文出处:http://www.cnblogs.com/wy123/p/5933734.html 先看常用的一种表结构设计方式: 那么可能会遇到一种典型的查询方式,主子表关联,查询子表中的某些(或者全部)Key点对应的Value,横向显示(也即以行的方式显示) 这种查询方式很明显的一个却显示多次对字表查询(暂时抛开索引) 相比这种查询方式很多人都遇到过,如果子表是配置信息之类的小表的话,问题不大,如果字表数据量较大,可能就会有影响了. 这个查询目的是将”纵表”存储的结果“横向”显示,相当于横列转…
引用自:http://www.cnblogs.com/love-summer/archive/2012/03/27/2419778.html sql server2000 里面如何实现oracle10g的 wmsys.wm_concat() 的功能? 以及学习以下关键字: 一.行列转换关键字PIVOT与UNPIVOT的使用 二.OUTER APPLY 三.FOR XML AUTO .FOR XML PATH ----乌龟代码---合并列值--***************************…
来源:http://www.studyofnet.com/news/295.html PIVOT通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合.UNPIVOT与PIVOT执行相反的操作,将表值表达式的列转换为列值. 通俗简单的说:PIVOT就是行转列,UNPIVOT就是列传行 一.PIVOT实例 1. 建表 建立一个销售情况表,其中,year字段表示年份,quarter字段表示季度,amount字段表示销售额.quarter字段…
在Sqlserver下巧用行列转换日期的数据统计 前言 在SQLSERVER 中有很多统计函数的基础语法,有使用Group By 或 partition by 后配合Sum,Count(*) 等用法.常应用于统计网站的PV流量.合同项目中月收入等业务场景中.在文中我分享下最近做过的统计小案例,和大家互相学习下:) 背景 合同中行项目按月收入的统计 1.业务逻辑及需求  1.1 表业务逻辑 合同是公司间互相签署的法律契约,一份合同从诞生起,就开始流转于公司的各个部门,最核心的还是盈亏的数值.盈亏是…
SQLSERVER 2005 以后提供了新的方式进行行列转换,下面是一个实例供参考: if object_id('tb') is not null drop table tbTest go ),季度 ),销售额 int) ) ) ) ) ) ) ) ) ) ) ) ) go select * from tbTest go --sqlserver 2000 或者其它数据库 select 产品 , end) as 一季度, end) as 二季度, end) as 三季度, end) as 四季度…