`
liyuandong
  • 浏览: 331741 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

遍历查询结果集的另一种思路

SQL 
阅读更多

          在SQLServer中,有时需要数据库里实现SQL结果集遍历,当然首先会想到使用SQL游标,但SQL游标最大的缺点就是复杂和低效。

  • 创建表变量来保存临时结果集,@@RowCount来控制循环结束标记。

Create procdure pro

As

Begin

       declare @cwbrecord table /*定义订单的表变量 用于遍历订单号*/

        (

         cwb  varchar(50),   

         flagID TINYINT/*这个表变量中增加一个FLAGID进行数据初始值为0的存放,然后去循环这个记录集,每循环一次,就把对应的FLAGID 的值改成1,然后再根据循环来查找满足条件等于0的情况,每循环一次,处理的记录集就会少一次,达到快速遍历,此种方式比游标 遍历效率高很多*/

        )

       declare  @totalcount int

       declare  @rownum int

insert  into @cwbrecord  select ops.cwb,0 from express_ops_cwb

/*设置循环总数*/

set  @totalcount = @@ROWCOUNT

 /*设置循环起始值*/

           set @rownum = 1

/*    循环*/

        while @rownum <=@totalcount

         begin

             declare @cwb varchar(50)

              select top 1 @cwb=cwb from @cwbrecord where flagID=0

              ……你要完成的逻辑

              update @cwbrecord set flagID=1 where cwb=@cwb

              set @rownum = @rownum + 1

         End

End

 

 

分享到:
评论

相关推荐

    IL思路以及遇到问题

    编码方式分为两种:一种是基于前序遍历的编码,另一种是结合编码长度和遍历顺序的编码。编码的目的在于便于通过特定算法快速找到关键字对应的结点,而SLCA指的是给定一系列关键字时找到最靠近这些关键字的共同祖先...

    易语言二叉树遍历源码-易语言

    二叉树在计算机科学中是一种数据结构,它由节点组成,每个节点有两个子节点:一个称为左子节点,另一个称为右子节点。易语言是一种中国本土开发的编程语言,其语法简洁,适合初学者和专业人士。本文将深入探讨易语言...

    基于JSP分页技术的研究

    另一种常用的分页技术是将查询结果存储在`HttpSession`或状态bean中,以便后续翻页时直接从缓存中读取数据。这种方式减少了数据库连接的次数,节约了资源。然而,它也有两个明显的缺点:首先,由于数据缓存,用户...

    thinkPHP5解决不同服务器不同数据库表关联查询问题

    可以使用`-&gt;paginate()`方法实现分页查询,然后通过`-&gt;each()`方法遍历每一条查询结果,进一步实现对另一张表的查询。 例如,从`user`表获取用户信息,并查询与之关联的`order`表中的订单信息: ```php $list =...

    sql实现分页查询的各种方法比较

    另一种实现分页查询的方式是通过`WHERE id &gt;`子句,这通常在数据按ID递增排序时较为有效。具体实现如下: ```sql SELECT TOP @PageSize * FROM table1 WHERE id &gt; ( SELECT ISNULL(MAX(id), 0) FROM ( SELECT ...

    Python面试准备:算法与数据结构精选编程题集 - 面试技能提升.pdf

    当一个列表遍历完,将另一个列表剩余部分添加到结果列表。此题考察了基本的列表操作和比较逻辑,是排序算法的基础。 3. **矩阵旋转**: 顺时针旋转一个N x N矩阵90度,首先需要转置矩阵,即交换行和列,然后反转每...

    关联规则apriori算法fptree算法

    FP-Tree算法是另一种常用的关联规则挖掘算法,它可以用来发现频繁项集和关联规则。FP-Tree算法的主要思想是使用树形结构来存储交易数据库,然后对树形结构进行遍历,发现频繁项集和关联规则。FP-Tree算法的优点是...

    c++排序算法及实现思路

    Hoare提出的快速排序是一种高效的分治算法,选取一个基准值,将数组分为两部分,一部分所有元素小于基准,另一部分所有元素大于基准,然后对这两部分递归进行快速排序。C++中可以使用递归函数实现,平均时间复杂度...

    打萎的RMQ 和 LCA

    并查集是另一种用于处理不相交集合合并及查询问题的数据结构,常用于解决动态连通性问题。 综上所述,RMQ和LCA问题是两个非常有用的问题模型,它们不仅在理论计算机科学中占有重要地位,而且在实际应用中也非常广泛...

    学生成绩管理系统(基于链表的)

    基于链表的实现方式是其中的一种设计思路,它利用链式数据结构来存储和操作数据,而不是传统的数组。链表允许动态地添加、删除和修改节点,这在处理不确定数量的数据时具有很高的灵活性。 在链表的基础上构建学生...

    最新JAVA编程题全集

    2. **素数判定:**对于每个数,使用另一个内部`for`循环来判断它是否为素数。循环从2开始到该数的平方根结束,若该数能被任意一个小于它的平方根的整数整除,则该数不是素数;反之则是素数。 3. **统计与输出:**...

    严蔚敏《数据结构(C语言版)习题集》答案.pdf

    队列也是一种特殊的线性表,但与栈不同的是,队列在一端进行插入操作,在另一端进行删除操作。队列的应用也很广泛,比如操作系统中的任务调度、打印机的任务队列等。 #### 四、串 **知识点7:字符串处理** 串是由...

    北京公交线路查询模型与算法设计.pdf

    - **动态遍历算法**:在确定了最少换乘次数的上界后,设计了一种动态遍历的搜索算法,用于搜索换乘的公交站点。该算法记录了搜索过程中的线路、换乘站点位置以及各路段途经的站点个数等信息,这些信息可以作为查询...

    严蔚敏《数据结构(c语言版)习题集》答案

    链表则是另一种重要的线性结构,每个节点包含数据和指向下一个节点的指针,适用于动态变化大小的集合。栈和队列是两种特殊的线性结构,栈遵循“后进先出”(LIFO)原则,队列遵循“先进先出”(FIFO)原则,它们在...

    main_线性表应用_

    这可以通过两次遍历实现,先遍历A,将元素放入哈希表或另一个链表B',然后遍历B',若元素不在B中,则加入C。 2. **补集**:如果存在全集U,我们可以遍历U的每个元素,如果元素不在A中,就将其添加到补集链表中。...

    分页技术1

    因此,一些开发者会选择另一种方式,即利用ResultSet的滚动功能。创建一个TYPE_SCROLL_INSENSITIVE的ResultSet,这样可以在遍历数据时随意定位到指定位置。先将结果集移动到最后,获取总行数,然后计算页数,最后将...

    Leetcode 并查集详解

    并查集(Disjoint Set)是一种高效的数据结构,主要用于处理元素的合并及查询元素间的连通性问题。在许多计算机科学领域中有着广泛的应用,特别是对于图论、连通性分析以及动态集合的管理等方面具有重要的作用。 ##...

    清华大学严蔚敏数据结构习题集(C版)答案

    图是数据结构的另一种形式,由顶点和边构成,可以表示各种关系,如社交网络、交通网络等。图的遍历算法有深度优先搜索(DFS)和广度优先搜索(BFS)。图的最小生成树算法如Prim和Kruskal,用于寻找连接所有顶点的...

    ACM并查集(Disjoint Set).pptx(共27页)

    - **定义**:并查集是一种数据结构,英文名称为Disjoint Set,用于处理一些不相交的集合的合并及查询问题。 - **应用场景**:并查集广泛应用于图论中的连通性判断、冗余边检测等场景。 - **核心功能**: - **合并...

    C语言数组的数组 排序,删除,查找联合搬

    另一种方法是使用链表结构,它可以更方便地进行元素的插入和删除,但链表不是连续内存空间,不适合随机访问。 三、数组的查找 数组查找分为顺序查找和二分查找。顺序查找从数组的第一个元素开始,逐个比较直至找到...

Global site tag (gtag.js) - Google Analytics