1、示例表结构及测试数据

create table ROW_COL_CONVER ( CODE VARCHAR2(10), MONTH VARCHAR2(10), NUM VARCHAR2(10) ) ; insert into Row_Col_Conver (CODE, MONTH, NUM)values ('C00001', '200401', '3'); insert into Row_Col_Conver (CODE, MONTH, NUM)values ('C00001', '200402', '1'); insert into Row_Col_Conver (CODE, MONTH, NUM)values ('C00001', '200403', '1'); insert into Row_Col_Conver (CODE, MONTH, NUM)values ('C00001', '200404', '3'); insert into Row_Col_Conver (CODE, MONTH, NUM)values ('C00001', '200405', '3'); insert into Row_Col_Conver (CODE, MONTH, NUM)values ('C00001', '200604', '1'); insert into Row_Col_Conver (CODE, MONTH, NUM)values ('C00002', '200401', '3'); insert into Row_Col_Conver (CODE, MONTH, NUM)values ('C00002', '200402', '2'); insert into Row_Col_Conver (CODE, MONTH, NUM)values ('C00002', '200404', '1'); insert into Row_Col_Conver (CODE, MONTH, NUM)values ('C00002', '200405', '1'); insert into Row_Col_Conver (CODE, MONTH, NUM)values ('C9999', '200401', '5 '); insert into Row_Col_Conver (CODE, MONTH, NUM)values ('C9999', '200402', '2 '); insert into Row_Col_Conver (CODE, MONTH, NUM)values ('C9999', '200403', '2 '); commit;

2、用表的临时表建表语句

create global temporary table T_MONTH_200401 ( CODE VARCHAR2(10), COL_200401 VARCHAR2(10) ) on commit delete rows; create global temporary table T_MONTH_200402 ( CODE VARCHAR2(10), COL_200402 VARCHAR2(10) ) on commit delete rows; create global temporary table T_MONTH_200403 ( CODE VARCHAR2(10), COL_200403 VARCHAR2(10) ) on commit delete rows; create global temporary table T_MONTH_200404 ( CODE VARCHAR2(10), COL_200404 VARCHAR2(10) ) on commit delete rows; create global temporary table T_MONTH_200405 ( CODE VARCHAR2(10), COL_200405 VARCHAR2(10) ) on commit delete rows; create global temporary table T_MONTH_200604 ( CODE VARCHAR2(10), COL_200604 VARCHAR2(10) ) on commit delete rows; create global temporary table T_MONTH_XXXXXX ( CODE VARCHAR2(10), COL_XXXXXX VARCHAR2(10) ) on commit delete rows;

3、REF_CUR包

CREATE OR REPLACE PACKAGE IRS_REF IS TYPE t_cursor IS REF CURSOR; end IRS_REF; /

4、实现二维查询的存储过程

CREATE OR REPLACE PROCEDURE SP_ROW_COL_CONVER(P_CUR OUT IRS_REF.T_CURSOR) AS BEGIN --生成一个包含所有可能的模板表 INSERT INTO T_MONTH_XXXXXX SELECT 'C00001', '' FROM ROW_COL_CONVER UNION SELECT 'C00002', '' FROM ROW_COL_CONVER UNION SELECT 'C9999', '' FROM ROW_COL_CONVER; --将各种列值的情况一一插入到临时表中 INSERT INTO T_MONTH_200401 SELECT CODE, DECODE(MONTH, '200401', NUM) COL_200401 FROM ROW_COL_CONVER WHERE DECODE(MONTH, '200401', NUM) IS NOT NULL; INSERT INTO T_MONTH_200402 SELECT CODE, DECODE(MONTH, '200402', NUM) COL_200402 FROM ROW_COL_CONVER WHERE DECODE(MONTH, '200402', NUM) IS NOT NULL; INSERT INTO T_MONTH_200403 SELECT CODE, DECODE(MONTH, '200403', NUM) COL_200403 FROM ROW_COL_CONVER WHERE DECODE(MONTH, '200403', NUM) IS NOT NULL; INSERT INTO T_MONTH_200404 SELECT CODE, DECODE(MONTH, '200404', NUM) COL_200404 FROM ROW_COL_CONVER WHERE DECODE(MONTH, '200404', NUM) IS NOT NULL; INSERT INTO T_MONTH_200405 SELECT CODE, DECODE(MONTH, '200405', NUM) COL_200405 FROM ROW_COL_CONVER WHERE DECODE(MONTH, '200405', NUM) IS NOT NULL; INSERT INTO T_MONTH_200604 SELECT CODE, DECODE(MONTH, '200604', NUM) COL_200604 FROM ROW_COL_CONVER WHERE DECODE(MONTH, '200604', NUM) IS NOT NULL; --打开游标,实现二维表查询 OPEN P_CUR FOR SELECT T_MONTH_200401.CODE ,NVL(COL_200401, 0) COL_200401 ,NVL(COL_200402, 0) COL_200402 ,NVL(COL_200403, 0) COL_200403 ,NVL(COL_200404, 0) COL_200404 ,NVL(COL_200405, 0) COL_200405 ,NVL(COL_200604, 0) COL_200604 FROM T_MONTH_XXXXXX LEFT JOIN T_MONTH_200401 ON T_MONTH_XXXXXX.CODE = T_MONTH_200401.CODE LEFT JOIN T_MONTH_200402 ON T_MONTH_XXXXXX.CODE = T_MONTH_200402.CODE LEFT JOIN T_MONTH_200403 ON T_MONTH_XXXXXX.CODE = T_MONTH_200403.CODE LEFT JOIN T_MONTH_200404 ON T_MONTH_XXXXXX.CODE = T_MONTH_200404.CODE LEFT JOIN T_MONTH_200405 ON T_MONTH_XXXXXX.CODE = T_MONTH_200405.CODE LEFT JOIN T_MONTH_200604 ON T_MONTH_XXXXXX.CODE = T_MONTH_200604.CODE; END; /

说明:通过以上代码,实现了将一维表查询成二维表的过程。

一个二维表查询的实现相关推荐

  1. mysql 二维表 查询_二维报表数据表设计

    报表原型: 这里随便挑了一个二维报表 二维报表设计分析: 上面的报表原型行和列都有数据项,我们可以根据地理位置的经纬度定坐标点的思想来进行设计 这里使用列行来表示 c1r1表示第一列第一行 c1r2表 ...

  2. 数据建模中的二维表和一维表!

    [讨论] 什么是表/一维表/二维表,哪位给个准确的定义 [复制链接] 透视表要求是一维表, 那什么是表.一维表.二维表呢?查了一下午也没有找到准确的定义, 把找到的内容罗列如下: ++++++++++ ...

  3. mysql第三章关系模型_一个MySQL关系模型只有三个关系(二维表)组成。_学小易找答案...

    [判断题]DELETE语句功能是对表中所有记录或满足条件的记录进行批量删除. [填空题]The computer's entire ____ was on a single board. [单选题]下 ...

  4. 一维转二维_Excel – 一维表和二维表相互转换,只要一个“=”搞定

    关于一维表和二维表的互相转化方法,我真的写过很多种了.且不说在各种案例中顺带提到的技巧,单独开篇讲的,就有以下这些: (头条号功能维护中,暂时无法添加超链接,有兴趣的读者请关注我,查看下历史记录吧) ...

  5. 二维表 转一维表 mysql_Excel二维表转换成一维表(2种方法)

    今天大年初四,春节假期还剩三天了,每逢佳节胖三斤,亲们可要注意控制饮食了,要不然春节后无脸见人哟.闲话少说,今日分享如下. 在做数据处理的时候,有的时候为了处理方便我们需要将二维的数据表处理成一维的数 ...

  6. linux音源管理 二维表,Oracle【二维表管理:约束】

    1.简单的表创建和字段类型 最简单的方式去创建表(没有添加主键之类的约束条件) [Oracle的字段类型] number:数值类型 --整数类型:number(a) 总长度a --小数类型:numbe ...

  7. MySql 如何将一维表变成二维表

    将一维表变成二维表, 实际上是一个双循环的查询操作, 需要用的sum(if(...))和group by. 例如: select item_index, item_name, item_target, ...

  8. Excel:一维表和二维表 互转

    一.一维表转二维表 数据源: 一份流水账式的值班表,为了便于打印张贴,现在需要使其变成这样的样式: 也就是从一维表变成传说中的二维表. 1.新建查询 依次单击[数据]→[新建查询] →[从文件]→[从 ...

  9. 【Python爬虫】用Python爬虫做一个二维码生成器,20行代码轻松实现

    python爬虫不止可以批量下载数据,还可以有很多有趣的应用,之前也发过很多,比如天气预报实时查询.cmd版的实时翻译.快速浏览论坛热门帖等等,这些都可以算是爬虫的另一个应用方向! 今天给大家分享一个 ...

最新文章

  1. 【腾讯代码文化】人均3.6万行代码,《腾讯研发大数据报告》正式发布!
  2. hadoop文件存储位置_Hadoop文件的存储格式实例详解
  3. Asp.Net 之 下载文件的常用方式
  4. python自带gui_一个极简易上手的 Python GUI 库
  5. InnerHTML、InnerText、outerHTML、outerText的区别
  6. 前端月趋势榜:5 月最热门的 20 个前端开源项目 - 2105
  7. CF724E Goods transportation
  8. Jquery加载默认值
  9. scrapy splash 爬取图片学习心得
  10. Java 的布局管理器GridBagLayout的使用方法【图文说明】
  11. 转帖:DotNet 资源大全中文版
  12. 如何避免可怕的中年危机?看完这篇彻底明白了
  13. 一个例子搞懂Nacos服务发现
  14. 2018最新游戏蛮牛Egret游戏引擎
  15. Apache DolphinScheduler 2.X保姆级源码解析
  16. dll hijack 学习
  17. 路由器级联方式(二级路由为例)
  18. 《掌舵》-还原一个真实的政商圈
  19. MPI实现并行pagerank
  20. 915M无线通讯模块 数传 SI4463 SX1278

热门文章

  1. lg显示器工厂模式怎么进入_LG液晶显示器进入工厂模式方法
  2. 屏幕色温自动调节小助手
  3. 2022电大国家开放大学网上形考任务-人体解剖生理学(本)非免费(非答案)
  4. Generative Adversarial Text to Image Synthesis 论文翻译精校版
  5. TLS1之__thread
  6. 《Linux C编程从入门到精通》一第1章 Linux基础1.1 Linux的起源、发展和分类
  7. java 字体大小 像素_字体的大小(pt)和像素(px)如何转换?
  8. 【转】抽象语法树简介(AST)
  9. parameter estimation for text analysis
  10. 用python构建机器学习模型分析空气质量