`
cqh520llr
  • 浏览: 521851 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

oracle处理的类型 oracle行排序

阅读更多
 -Dpafa.log.home="D:\log1" -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,address=3999,suspend=n -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% 


DECLARE
  CURSOR CUR_BALL IS
    SELECT * FROM BALL_ELEVEN;
  BALL_TBL BALL_ELEVEN%ROWTYPE;
  CURSOR CUR_BALL_TEMP IS
    SELECT BALL FROM BALL_ELEVEN_TEMP ORDER BY BALL;
  V_BALL   VARCHAR2(2);
  V_FIRST  VARCHAR2(2);
  V_SECOND VARCHAR2(2);
  V_THIRD  VARCHAR2(2);
  V_FOURTH VARCHAR2(2);
  V_FIFTH  VARCHAR2(2);
  V_COUNT  NUMBER(1);
BEGIN
  OPEN CUR_BALL;
  LOOP
    FETCH CUR_BALL
      INTO BALL_TBL;
    EXIT WHEN CUR_BALL%NOTFOUND;
    V_COUNT := 0;
    INSERT INTO BALL_ELEVEN_TEMP (BALL) VALUES (BALL_TBL.BALL_FIRST);
    INSERT INTO BALL_ELEVEN_TEMP (BALL) VALUES (BALL_TBL.BALL_SECOND);
    INSERT INTO BALL_ELEVEN_TEMP (BALL) VALUES (BALL_TBL.BALL_THIRD);
    INSERT INTO BALL_ELEVEN_TEMP (BALL) VALUES (BALL_TBL.BALL_FOURTH);
    INSERT INTO BALL_ELEVEN_TEMP (BALL) VALUES (BALL_TBL.BALL_FIFTH);
    OPEN CUR_BALL_TEMP;
    LOOP
      FETCH CUR_BALL_TEMP
        INTO V_BALL;
      EXIT WHEN CUR_BALL_TEMP%NOTFOUND;
      V_COUNT := V_COUNT + 1;
      IF V_COUNT = 1 THEN
        V_FIRST := V_BALL;
      ELSIF V_COUNT = 2 THEN
        V_SECOND := V_BALL;
      ELSIF V_COUNT = 3 THEN
        V_THIRD := V_BALL;
      ELSIF V_COUNT = 4 THEN
        V_FOURTH := V_BALL;
      ELSIF V_COUNT = 5 THEN
        V_FIFTH := V_BALL;
      END IF;
    END LOOP;
    CLOSE CUR_BALL_TEMP;
    DELETE FROM BALL_ELEVEN_TEMP;
    INSERT INTO BALL_ELEVEN_ORDER
      (BALL_NO,
       BALL_FIRST,
       BALL_SECOND,
       BALL_THIRD,
       BALL_FOURTH,
       BALL_FIFTH)
    VALUES
      (BALL_TBL.BALL_NO, V_FIRST, V_SECOND, V_THIRD, V_FOURTH, V_FIFTH);
  END LOOP;
  CLOSE CUR_BALL;
  COMMIT;
END;



引用

DECLARE
  CURSOR cur_ball IS
    SELECT * FROM ball WHERE FIRST = 8;
  ball_tbl ball%ROWTYPE;
  CURSOR cur_ball_tem IS
    SELECT * FROM ball_temp ORDER BY ball;
  ball_tem_tbl ball_temp%ROWTYPE;
  v_count      NUMBER(1);
  v_first      VARCHAR2(2);
  v_second     VARCHAR2(2);
  v_third      VARCHAR2(2);
  v_fourth     VARCHAR2(2);
  v_fifth      VARCHAR2(2);
BEGIN
  OPEN cur_ball;
  LOOP
    FETCH cur_ball
      INTO ball_tbl;
    EXIT WHEN cur_ball%NOTFOUND;
    INSERT INTO ball_temp VALUES (ball_tbl.FIRST);
    INSERT INTO ball_temp VALUES (ball_tbl.SECOND);
    INSERT INTO ball_temp VALUES (ball_tbl.third);
    INSERT INTO ball_temp VALUES (ball_tbl.fourth);
    INSERT INTO ball_temp VALUES (ball_tbl.fifth);
    OPEN cur_ball_tem;
    LOOP
      FETCH cur_ball_tem
        INTO ball_tem_tbl;
      v_count := v_count + 1;
      IF v_count = 1 THEN
        v_first := ball_tem_tbl.ball;
      ELSIF v_count = 2 THEN
        v_second := ball_tem_tbl.ball;
      ELSIF v_count = 3 THEN
        v_third := ball_tem_tbl.ball;
      ELSIF v_count = 4 THEN
        v_fourht := ball_tem_tbl.ball;
      ELSIF v_count = 5 THEN
        v_fifth := ball_tem_tbl.ball;
      END IF;
      EXIT;
    END LOOP;
    CLOSE cur_ball_tem;
    DELETE FROM ball_temp;
    INSERT INTO ball_tem VALUES (v_first, v_second, v_third);
  END LOOP;
  CLOSE cur_ball;
  COMMIT;
END;




分享到:
评论

相关推荐

    oracle排序

    在 Oracle 中,可以使用子查询对排序后的数据获取第一行。例如,以下语句将对 perexl 表中的数据按照 danwei 列的拼音进行排序,然后获取第一行数据: SELECT * FROM (SELECT * FROM perexl ORDER BY NLSSORT...

    Oracle对排序操作的优化措施

    ### Oracle对排序操作的优化措施 #### 一、PGA与SGA的区别 在理解Oracle数据库对...这不仅对于数据库管理员来说至关重要,对于任何依赖Oracle数据库进行数据管理和处理的组织而言,也是提高系统性能的关键步骤之一。

    浅谈Oracle优化排序的操作

    在探讨Oracle排序操作的优化之前,我们首先需要理解Oracle数据库中的排序是如何发生的以及它所依赖的资源。Oracle的排序操作通常发生在以下几种情况下:创建索引、索引维护、ORDER BY、GROUP BY、DISTINCT、UNION/...

    如何解决Oracle分页查询中排序与效率问题

    Oracle 分页查询优化与排序解决方案 本文主要解决 Oracle 分页查询中排序与效率问题,通过实践和分析,提供了两种解决方案,并对比了两种方法的优缺点。 知识点 1: Oracle 分页查询的基本概念 Oracle 分页查询是...

    Oracle数据库中ORDER BY排序和查询按IN条件的顺序输出

    在Oracle数据库中,排序操作是数据库查询中非常关键的一部分,特别是在数据分析、报表生成以及用户界面展示时。本文将深入探讨`ORDER BY`子句在Oracle中的排序机制,以及查询时根据`IN`条件顺序输出的方法。 首先,...

    oracle查询相邻上下行值

    在处理时间序列数据或具有某种排序的数据时,经常需要查询某一行记录与其相邻行(前一行或后一行)的数据。这种需求在财务分析、时间序列分析等领域非常常见。例如,在股票交易中,可能需要查询某一天的价格以及前一...

    oracle排序方法拼音,部首,笔画

    ### Oracle排序方法:拼音、部首、笔画 在Oracle数据库中,为了适应不同语言环境下的数据处理需求,提供了一套强大的多语言支持工具。其中,“NLS_SORT”参数允许用户按照不同的规则对数据进行排序,这对于处理中文...

    oracle分组排序统计高级用法

    在Oracle数据库中,实现分组排序和统计是一项常见的需求,主要用于处理大量的数据,并从中提取有价值的信息。通过合理运用SQL语句,特别是`GROUP BY`、`ORDER BY`以及分析函数等,可以有效地对数据进行分组、排序、...

    ORACLE排序优化

    ORACLE 排序优化

    oracle数据库中汉字排序方法

    在Oracle数据库中处理中文数据时,经常需要对包含中文字符的数据表进行排序操作。为了确保排序结果符合预期并能够满足实际业务需求,我们需要掌握几种有效的汉字排序方法。本文将详细介绍如何在Oracle数据库中实现...

    对Oracle 排序中的几种常用排序的介绍

    Oracle数据库在处理排序时提供了多种方法,以满足不同的需求。本文将详细介绍Oracle中常见的几种排序方式,包括按拼音、部首、笔画排序,以及如何处理NULL值,使用DECODE和NVL函数,以及实现高效的分页查询。 1. **...

    oracle索引类型及扫描方式大整理new

    ### Oracle索引类型详解 #### 一、B\*Tree索引:数据检索的基石 在Oracle数据库中,B\*Tree索引是最常见的索引结构,也是默认创建的索引类型。它基于二叉树原理,由分支块(branch block)和叶块(leaf block)构成,...

    oracle的数据类型及存储方式 文档

    Oracle 数据类型是数据库管理系统Oracle中用于定义和存储各种数据类型的规则和格式。这些数据类型决定了字段可以存储的数据种类,以及如何存储和处理这些数据。在Oracle中,数据类型分为多种,包括字符类型、数值...

    ORACLE 10g 数据类型

    Oracle 10g 数据类型是数据库管理的基础,它定义了数据在存储和处理时的格式。Oracle 提供了丰富的数据类型来满足各种数据存储需求,主要包括字符型、数值型、日期时间型和大对象型。 1. 字符型 字符型数据类型包括...

    解决Oracle分页查询中排序与效率问题

    ### 解决Oracle分页查询中排序与效率问题 在Oracle数据库中进行分页查询时,经常会出现性能瓶颈,尤其是在处理大数据量的情况下。本篇文章将详细探讨如何优化Oracle分页查询中的排序与效率问题。 #### 一、理解...

    带排序的oracle分页存储过程

    - SQL语句首先对`v_table_name`表进行全表扫描,并为每一行添加一个行号(`rownum`),然后根据起始行号和结束行号筛选出所需的数据,并按照`v_order_field`和`v_order_sequence`进行排序。 6. **执行SQL语句并...

Global site tag (gtag.js) - Google Analytics