SQL_UNPIVOT(行列转换)】的更多相关文章

注:本文使用的数据库表为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 四季度…
前言: 最近又玩起了sql语句,想着想着便给自己出了一道题目:“行列转换”.起初瞎折腾了不少时间也上网参考了一些博文,不过大多数是采用oracle数据库当中的一些便捷函数进行处理,比如”pivot”.那么,在Mysql环境下如何处理? 自己举了个小例子: sql代码实现: -- Step1:建表并插入数据 -- Step2:中间转换,即“二维转一维”得到一维表. -- Step3:利用IF判断并“group by”即可得到目标结果表. -- 加载 use test; create table s…
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…
*********************************************************************** * Title           : ZSDF003                                          * * Application     : SD                                              *                                      …
*********************************************************************** * Title           : ZSDF002                                          * * Application     : SD                                              * * Subject         :                  …
需要传入数据到Excel里的模板如上图所示 ********************** *           设计主要逻辑与原理说明                                 * *********************************************************************** *SD模块发货通知单 ****************************************************************…
*&---------------------------------------------------------------------* *& Report  Z_TEST_COL_TO_ROW_02 *& *&---------------------------------------------------------------------* *& *& *&--------------------------------------…
REPORT Z_TEST_COL_TO_ROW. TYPE-POOLS: slis. TABLES: VTTP,LIPS,LIKP,KNA1 ,VTTK. DATA: gd_fieldcat TYPE slis_t_fieldcat_alv. DATA: sla TYPE slis_layout_alv ,       ivariant LIKE disvariant,       i_repid LIKE sy-repid ,       i_excluding TYPE slis_t_ex…
首先我们建立一张表,名为scoreInfo,各个字段的设计如下图,分别是name,course,score,表示姓名,成绩与分数,如图所示.…
一.建表与插入数据 1.1.建表 create table kecheng ( id NUMBER, name ), course ), score NUMBER ); insert into kecheng (id, name, course, score) , ); insert into kecheng (id, name, course, score) , ); insert into kecheng (id, name, course, score) , ); insert into…
今天一个同学遇到一个问题问我了,由于本人平时学习的mysql比较基础,确实没解决,后来google了一下,才知道是sql的一种技法[行列转换],话不多说先上图: 想得到下面的结果: +------+-------+-------+-------+-------+| 年份 | 1月 | 2月 | 11月 | 12月 |+------+-------+-------+-------+-------+| 2014 | 0 | 0 | 20000 | 21000 || 2015 | 30000 | 60…
转载:http://www.cnblogs.com/newwind521/archive/2010/11/25/1887203.html sql 行专列 列转行 普通行列转换 /* 标题:普通行列转换(version 2.0) 作者:爱新觉罗.毓华 时间:2008-03-09 地点:广东深圳 说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法.  问题:假设有张学生成绩表(tb)如…
行列转换常见场景 由于很多业务表因为历史原因或者性能原因,都使用了违反第一范式的设计模式.即同一个列中存储了多个属性值(具体结构见下表). 这种模式下,应用常常需要将这个列依据分隔符进行分割,并得到列转行的结果. 表数据: ID Value 1 tiny,small,big 2 small,medium 3 tiny,big 期望得到结果: ID Value 1 tiny 1 small 1 big 2 small 2 medium 3 tiny 3 big 具体方法 先从一个具体实例开始我们的…
2013-8-20 1.    SQL查询表的行列转换/小计/统计(with  rollup,with cube,pivot解析) 在实际的项目开发中有很多项目都会有报表模块,今天就通过一个小的SQL查询统计来讲解一下实际开发中比较常用的行列转换/小计/统计等报表统计相关的常用知识点. 题目如下: 查询sales 和stores表,得出1993年每个store每季度销售数量及小计和总计,查询出的结果如下 其中sales表的数据结构如下: 其中stores表的数据结构如下: 1.1 普通方法(容易…
oracle 10g wmsys.wm_concat行列转换函数的使用: 首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行,接下来上例子,看看这个神奇的函数如何应用   1.把结果按分组用逗号分割,以一行打印出来.(如果需要换其它的可以用replace函数:replace(wm_concat(name),',','|')) select t.u_id,        wmsys.wm_concat(t.goods),      …
Kettle在控件中拥有行列转换功能,但是行列转换貌似是弄反了. 一.行转列 1.数据库脚本 create TABLE StudentInfo ( studentno int, subject ), grade int );,); ,); ,); ,); ,); ,); ,); ,); ,); commit; 2.总体行转列示意图 2.1表输入配置 2.2列转行配置 2.3字段选择配置 2.4文本文件输出配置 输出到文件后查看内容 二.列转行 1.数据库脚本 CREATE TABLE Stude…
原题:https://leetcode.com/problems/transpose-file/Given a text file file.txt, transpose its content. You may assume that each row has the same number of columns and each field is separated by the ' ' character. For example, if file.txt has the followin…
1. 介绍说明 前段时间组内的小伙伴在升级维护项目中,经常涉及一些复杂的数据转换问题,让我去看下有些地方怎么处理,我发现好多都是涉及到行列转换的问题,处理起来经常会比较麻烦,借此也总结一下,方便以后的查阅使用.该总结参照了网上的一些资料,也做了一些变动,如有更好的方法也欢迎指出. 演示的脚本见 3.测试数据脚本 2. 例子演示 2.1 实现行转列 (1) Case WHEN 实现行转列 /*-----1.1 Case WHEN 实现行转列----------*/ --(1)静态SQL SELEC…
转自: http://www.cnblogs.com/knowledgesea/p/3696912.html http://www.open-open.com/lib/view/open1418462880292.html http://blog.jobbole.com/55086/ http://blog.csdn.net/dj2008/article/details/10112717 http://tech.it168.com/a2009/1125/814/000000814758_all.…
有同学问了个比较典型行列转换的问题,想想,解答如下:数据库有一张表: 是个公司采购表,想转化成如下报表,显示每个公司各采购了些什么产品: 哪些公司采购哪些产品是不确定的,所以报表的列有哪几项是不确定的,我想了很久也没什么好方法,请问有办法吗? 解题思维步骤: 先找到未行列转换的数据,分组查看数据试试:select CompanyName,ProductName,COUNT(*)as num from dbo.Orders group by ProductName,CompanyName orde…
把内表的行列转换,网上的例子很多,但是新人想看懂,几乎很难,所以总结下我是怎么完成的. 比如:你的内表如图: 你想让内表最后展示成这样:如图: 那么完成之后会是这样: 完成这个过程,得用到动态内表.看代码: , bezei LIKE zchannel-bezei, "销售办事处 zdate LIKE zchannel-zdate, "日期 salesamount LIKE zchannel-salesamount, "总额 END OF itab8. 先排序: SORT it…
/* 标题:普通行列转换(version 2.0) 作者:范中磊 说明:普通行列转换(version 1.0)仅针对sql server 2000提供静态和动态写法,version 2.0增加sql server 2005的有关写法. 问题:假设有张学生成绩表(tb)如下: 姓名 课程 分数 张三 语文 74 张三 数学 83 张三 物理 93 李四 语文 74 李四 数学 84 李四 物理 94 想变成(得到如下结果): 姓名 语文 数学 物理 ---- ---- ---- ---- 李四 7…