热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

一个关于排序的问题,急用!~~~~谢谢

各位,有谁知道在没有定义编号的情况下,就是字段中没有可以用来关联顺序的情况下,怎么按照记录的写入顺序,再把记录按此顺序读出来?我试着用ROWID,不过效果不好。急用,谢谢~~~~
各位,有谁知道在没有定义编号的情况下,就是字段中没有可以用来关联顺序的情况下,怎么按照记录的写入顺序,再把记录按此顺序读出来?我试着用ROWID,不过效果不好。急用,谢谢~~~~

6 个解决方案

#1


不会,学习

#2


select * from tablename 就是按照数据的插入顺序来显示的

#3


这样吧,我用的存储过程实现的代码,具体贴出来,现在问题是select * from tabname 查出来的顺序的确不是我的写入顺序
这个计算过程是:
CREATE OR REPLACE PROCEDURE "P_COUNTRYSIDE_SAND_GROWTH" /*
日期 : 2004-11-04
作者 : 肖云
概要 : m_countryside_sand_growth表的计算,数据依据为shahua表
参数说明 :    VillageCode      乡代码          
返回值说明 : 
                       
主要修改 :优化处理,减少游标使用量
          版本1。利用调用函数
日期 : 2004-11-16
作者 : 肖云
概要 :           
*/
 (VillageCode in number)  is
  
  CURSOR cur_get_data (s10_data number,s19_data number) IS SELECT NVL(SUM(s7),0) FROM m_shahua
    WHERE  s5=  VillageCode   AND s10 = s10_data AND s19 = s19_data;
      
  TYPE cursor_update_type IS REF CURSOR ;
  
  --用于判断m_countryside_sand_growth表中有无数据
  cur_update_flag cursor_update_type;
  
  --用于对m_countryside_sand_growth进行数据更新
  cur_update_data cursor_update_type;
  
  --存放求合后的数据
  rec_sun_data m_countryside_sand_growth%ROWTYPE;
  rec_sun_temp m_countryside_sand_growth%ROWTYPE;
  rec_flag shahua%ROWTYPE;
  Index_j INTEGER;
  --治理措施
  FatherMethod VARCHAR2(30);
begin   
--填入数据
    --如果数据表里没有该乡数据则设置函数返回值
    OPEN cur_update_flag FOR SELECT s7 FROM m_shahua WHERE s5= VillageCode ;
    FETCH cur_update_flag INTO rec_flag.s7;
    IF cur_update_flag%NOTFOUND OR cur_update_flag%NOTFOUND IS NULL then
      --设置函数返回值
      --if return_values = '0' then 
      --  return_values :=VillageCode || ';' ;
      --else
      --  return_values :=return_values || VillageCode || ';';
      --end if; 
      --填入数据日志
      INSERT INTO sys_log (sid,sname,sexplain,sdate,sdept,sbt,stype)VALUES(VillageCode,(SELECT sname FROM c_countryside WHERE sid = VillageCode),'无该乡数据!',sysdate,4,VillageCode,6) ;
    ELSE     
      --删除乡统计表中原有记录
      DELETE  FROM m_countryside_sand_growth WHERE ccode= VillageCode;
      --开始计算
      FOR Index_j IN 1 .. 18
      LOOP
          IF Index_j = 1 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,804,804,VillageCode);
          ELSIF Index_j = 2 THEN 
               P_SUM_GROWTH_CURSOR(rec_sun_data,803,803,VillageCode);
          ELSIF Index_j = 3 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,829,829,VillageCode);
          ELSIF Index_j = 4 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,1200,1200,VillageCode);
          ELSIF Index_j = 5 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,'805,806',3001,VillageCode);
          ELSIF Index_j = 6 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,801,801,VillageCode);
          ELSIF Index_j = 7 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,516,516,VillageCode);
          ELSIF Index_j = 8 THEN 
               P_SUM_GROWTH_CURSOR(rec_sun_data,311,311,VillageCode);
          ELSIF Index_j = 9 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,310,310,VillageCode);
          ELSIF Index_j = 10 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,518,518,VillageCode);
          ELSIF Index_j = 11 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,809,809,VillageCode);
          ELSIF Index_j = 12 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,524,524,VillageCode);
          ELSIF Index_j = 13 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,80,80,VillageCode);
          ELSIF Index_j = 14 THEN 
               P_SUM_GROWTH_CURSOR(rec_sun_data,802,802,VillageCode);
          ELSIF Index_j = 15 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,807,807,VillageCode);
          ELSIF Index_j = 16 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,'852,1157,1162,1029',3002,VillageCode);
          ELSIF Index_j = 17 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,'1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,29',3003,VillageCode);  
          ELSIF Index_j = 18 THEN
               P_SUM_GROWTH_CURSOR(rec_sun_data,'1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,21,29,
                   852,1157,1162,1029,807,802,80,524,809,518,310,311,516,801,805,806,1200,829,803,804',3004,VillageCode,1);       
          END IF ;
          INSERT INTO M_countryside_sand_growth VALUES (rec_sun_data.sid,rec_sun_data.acode,rec_sun_data.bcode
              ,rec_sun_data.ccode,rec_sun_data.s01,rec_sun_data.s02,rec_sun_data.s03,rec_sun_data.s04,rec_sun_data.s05
              ,rec_sun_data.s06,rec_sun_data.s07,rec_sun_data.s08,rec_sun_data.s09,rec_sun_data.s10,rec_sun_data.s11
              ,rec_sun_data.s12,rec_sun_data.s13,rec_sun_data.s14,rec_sun_data.s15,rec_sun_data.s16,rec_sun_data.s17
              ,rec_sun_data.s18,rec_sun_data.objectid); 
              
    END LOOP;    
          
    END IF  ;
    CLOSE cur_update_flag ;
    COMMIT; 
EXCEPTION
    WHEN VALUE_ERROR
    THEN
        INSERT INTO sys_log (sid,sname,sexplain,sdate,sdept,sbt,stype)VALUES(VillageCode,(SELECT sname FROM c_countryside WHERE sid = VillageCode),'数据统计错误,可能统计值超出精度!',sysdate,4,VillageCode,6) ;
    COMMIT;
END p_countryside_sand_growth;

#4


中间被调用的过程是:
CREATE OR REPLACE PROCEDURE "P_SUM_GROWTH_CURSOR" (Rec_Sum IN OUT m_countryside_sand_growth%ROWTYPE,column_name VARCHAR2,
 column_Code IN NUMBER,VillageCode IN NUMBER,other in integer := 0
) is

 
/*
CURSOR Cur_SumForArer IS 
    SELECT NVL(SUM(s7),0) TOTAL,s19,s10 
    FROM shahua 
    WHERE s10 = s10_data AND s19 IN () AND s5 = VillageCode ;   
*/  
TYPE cur_type IS REF CURSOR;
Cur_SumForArer cur_type;
link_sign varchar2(10) := 'IN' ;
BEGIN 
            IF other = 1 THEN
            link_sign := 'NOT IN';
            END IF ;
            --填入代码编号及乡级编码
            Rec_Sum.sid:= VillageCode;
            Rec_Sum.acode:= SUBSTR(VillageCode,1,2);
            Rec_Sum.bcode:= SUBSTR(VillageCode,1,6);
            Rec_Sum.ccode:= VillageCode;
            --填入治理措施        
            Rec_Sum.s02 :=  column_Code ;
            --填入OBJECTID
            Rec_Sum.objectid := f_get_objectid (VillageCode,4);
            --填入各项土地面积
            --流动沙地(丘)  
            OPEN Cur_SumForArer FOR 'SELECT NVL(SUM(s7),0) 
                FROM m_shahua 
                WHERE s10 = 168 AND s19 '|| link_sign ||' ('|| column_name ||') AND s5 = ' || VillageCode ;           
            FETCH Cur_SumForArer INTO Rec_Sum.s04;
            CLOSE Cur_SumForArer;
            --人工半固定沙地
            OPEN Cur_SumForArer FOR 'SELECT NVL(SUM(s7),0) 
                FROM m_shahua 
                WHERE s10 = 1701 AND s19 '|| link_sign ||' ( '|| column_name ||' ) AND s5 = ' || VillageCode ;
            FETCH Cur_SumForArer INTO Rec_Sum.s06;
            CLOSE Cur_SumForArer;
            --天然半固定沙地
            OPEN Cur_SumForArer FOR 'SELECT NVL(SUM(s7),0) 
                FROM m_shahua 
                WHERE s10 = 1702 AND s19 '|| link_sign ||' ( '|| column_name ||' ) AND s5 = ' || VillageCode ;
            FETCH Cur_SumForArer INTO Rec_Sum.s07;
            CLOSE Cur_SumForArer;
            --半固定沙地(丘)计
            Rec_Sum.s05 := Rec_Sum.s07 +Rec_Sum.s06;
            --人工固定沙地
            OPEN Cur_SumForArer FOR 'SELECT NVL(SUM(s7),0) 
                FROM m_shahua 
                WHERE s10 = 1721 AND s19 '|| link_sign ||' ( '|| column_name ||' ) AND s5 = ' || VillageCode ;
            FETCH Cur_SumForArer INTO Rec_Sum.s09;
            CLOSE Cur_SumForArer;
            --天然固定沙地
            OPEN Cur_SumForArer FOR 'SELECT NVL(SUM(s7),0) 
                FROM&nbs
推荐阅读
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Java学习笔记之使用反射+泛型构建通用DAO
    本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
  • 本文介绍了Oracle存储过程的基本语法和写法示例,同时还介绍了已命名的系统异常的产生原因。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
author-avatar
疯狂的猿猴
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有