SQL2005实现循环每一行做一定操作。

简介:
要对一个表的每一行做出比较复杂的操作,一般会想到用游标,今天想到使用SQL2005中的新函数ROW_NUMBER()和while循环来对每一行执行操作。示例代码如下:
None.gif select  Department_No  as  departmentNo,ROW_NUMBER()  OVER ( ORDER   BY  Department_No)  AS  rowNumber  into  #depTemp -- 建立临时表
None.gif
from  departments
None.gif
None.gif
declare   @max   int -- 获得最大的rowNumber
None.gif
select   @max = max (rownumber)
None.gif
from  #depTemp
None.gif
None.gif
declare   @rowNo   int
None.gif
set   @rowNo = 1
None.gif
while   @rowNo <= @max -- 对每一个rowNumber进行循环操作
None.gif
begin
None.gif
-- 这儿对每一行要进行的操作的代码
None.gif
set   @rowNo = @rowNo + 1
None.gif
end
None.gif
None.gif
drop   table  #depTemp -- 清除临时表
目录
相关文章
|
3月前
|
SQL 存储 缓存
四、SQL语句执行过程分析
四、SQL语句执行过程分析
34 0
|
5月前
|
SQL Oracle 关系型数据库
SQL语句的执行
SQL语句的执行
|
7月前
|
SQL 存储 数据库
SQL语句中,如何使用含有if....else...判断语句
SQL语句中,如何使用含有if....else...判断语句
43 0
|
SQL 关系型数据库 MySQL
一条SQL更新语句的执行过程
一条SQL更新语句的执行过程
|
SQL 索引
说说对SQL语句优化有哪些方法?
说说对SQL语句优化有哪些方法?
87 0
|
SQL
SQL面试题:循环操作
HiveSQL面试题,找出一串数字中1的位置
391 0
|
SQL 存储 关系型数据库
SQL语句操作详解
SQL语句操作详解
177 0
|
SQL 存储 关系型数据库
一条SQL更新语句是如何执行的?
大家好前面我们大概了解了一个查询语句的执行流程,并介绍了执行过程中涉及的处理模块。相信你还记得,一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎。那么,一条更新语句的执行流程又是怎样的呢?
一条SQL更新语句是如何执行的?
|
存储 SQL 缓存
一条SQL更新语句是如何执行的
一条SQL更新语句是如何执行的 这是图解MySQL的第2篇文章,这篇文章会通过一条SQL更新语句的执行流程让大家清楚地明白: 什么是InnoDB页?缓存页又是什么?为什么这么设计? 什么是表空间?不同存储引擎的表在文件系统的底层表示上有什么区别? Buffer Pool是什么?为什么需要?有哪些我们需要掌握的细节? MySQL的三种日志文件redo日志、undo日志、binlog分别是什么?为什么需要这么多种类型的日志?
190 0
一条SQL更新语句是如何执行的
|
SQL 存储 关系型数据库
跳过或替代执行异常的 SQL 语句
本文介绍了如何使用 DM 来处理异常的 SQL 语句。 目前,TiDB 并不完全兼容所有的 MySQL 语法(详见 TiDB 已支持的 DDL 语句)。当使用 DM 从 MySQL 同步数据到 TiDB 时,如果 TiDB 不支持对应的 SQL 语句,可能会造成错误并中断同步任务。在这种情况下,DM 提供以下两种方式来恢复同步: 使用 dmctl 来手动跳过 (skip) 该 SQL 语句对应的 binlog event。 使用 dmctl 来手动指定其他 SQL 语句来替代 (replace) 该 SQL 语句对应的 binlog event,并向下游执行。 如果提前预知将要同步 T
605 0