Oracle行列转换小结】的更多相关文章

目录结构如下:行转列列转行[一].行转列 1.1.初始测试数据 表结构:TEST_TB_GRADE Sql代码 create table TEST_TB_GRADE (   ID        NUMBER(10) not null,   USER_NAME VARCHAR2(20 CHAR),   COURSE    VARCHAR2(20 CHAR),   SCORE     FLOAT )  初始数据如下图:                       1.2. 如果需要实现如下的查询效果…
oracle 行列转换列名如果是数字,用双引号包住  如下: --  建表 create table workinfo(wid integer primary key,sid integer ,CONSTRAINT sid foreign key(sid) references student(sid),city nvarchar2(100),-- 就业城市wage number(10,2),-- 月薪workdate date,-- 就业时间eid integer ,CONSTRAINT ei…
行专列 Pivot 1)SQL 2000版本 静态 SELECT ID , SUM(CASE Code WHEN 'Item1' THEN Value END) AS Item1 , SUM(CASE Code WHEN 'Item2' THEN Value END) AS Item2 , SUM(CASE Code WHEN 'Item3' THEN Value END) AS Item3 FROM RowToCol GROUP BY ID --或者用max也行 SELECT ID , MAX…
oracle 10g wmsys.wm_concat行列转换函数的使用: 首先让我们来看看这个神奇的函数wm_concat(列名),该函数可以把列值以","号分隔起来,并显示成一行,接下来上例子,看看这个神奇的函数如何应用   1.把结果按分组用逗号分割,以一行打印出来.(如果需要换其它的可以用replace函数:replace(wm_concat(name),',','|')) select t.u_id,        wmsys.wm_concat(t.goods),      …
最近几天一直在弄Oracle-SQL的问题,涉及到了一些平时没有用到的东西,也因此而在这里郁闷了好久.现在问题得到了解决虽说不算完美.但是还是和大家一起分享一下. 行列转换之一:sum(case when.. then.. else.. end) as 语句 这种也可能是我们遇到的第一个行列转换的方法.巧妙的利用汇总和判断语句就可以解决的. 先看一个简单的基础表:如下图 create table STUDENT(  STUNAME      NVARCHAR2(50),  SUBJECTNAME…
一.建表与插入数据 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…
1. 介绍说明 前段时间组内的小伙伴在升级维护项目中,经常涉及一些复杂的数据转换问题,让我去看下有些地方怎么处理,我发现好多都是涉及到行列转换的问题,处理起来经常会比较麻烦,借此也总结一下,方便以后的查阅使用.该总结参照了网上的一些资料,也做了一些变动,如有更好的方法也欢迎指出. 演示的脚本见 3.测试数据脚本 2. 例子演示 2.1 实现行转列 (1) Case WHEN 实现行转列 /*-----1.1 Case WHEN 实现行转列----------*/ --(1)静态SQL SELEC…
原贴地址:http://www.itpub.net/thread-1017026-1-1.html 谢谢原贴大人 最近论坛很多人提的问题都与行列转换有关系,所以我对行列转换的相关知识做了一个总结, 希望对大家有所帮助,同时有何错疏,恳请大家指出, 我也是在写作过程中学习,算是一起和大家学习吧. 行列转换包括以下六种情况: *列转行 *行转列 *多列转换成字符串 *多行转换成字符串 *字符串转换成多列 *字符串转换成多行 下面分别进行举例介绍. 首先声明一点,有些例子需要如下10g及以后才有的知识…
行列转换包括以下六种情况:*列转行*行转列*多列转换成字符串*多行转换成字符串*字符串转换成多列*字符串转换成多行 下面分别进行举例介绍. 首先声明一点,有些例子需要如下10g及以后才有的知识:a.掌握model子句b.正则表达式c.加强的层次查询 讨论的适用范围只包括8i,9i,10g及以后版本.begin: 1.列转行 未列转行之前的效果如下: 列转行的效果如下: sql代码: CREATE TABLE t_col_row(    ID INT,    c1 ),    c2 ),    c…
一.wm_concat函数 wm_concat能够实现同样的功能,但是有时在11g中使用需要用to_char()进行转换,否则会出现不兼容现象(WMSYS.WM_CONCAT: 依赖WMSYS 用户,不同oracle环境时可能用不了,返回类型为CLOB,可用substr截取长度后to_char转化为字符类型). 测试用表test_org_bak select * from test_org_bak; 1.:行转列(默认逗号隔开) select wm_concat(level_four_name)…