SQL WHILE 循环 嵌套

摘录自:http://imysqldba.blog.51cto.com/1222376/595433

 - 内循环变量在选环后要重新赋初值,否则不能循环。


代码如下:

 
 
  1. DELIMITER $$ 
  2.  
  3. USE `qqfs_db_items`$$ 
  4.  
  5. DROP PROCEDURE IF EXISTS `qqsf_proc_InsertItemTest`$$ 
  6.  
  7. CREATE DEFINER=`root`@`%` PROCEDURE `qqsf_proc_InsertItemTest`( 
  8.  i_PlayerCount INT) COMMENT '插入道具表测试' 
  9.  BEGIN 
  10.   DECLARE a INT DEFAULT 1; 
  11.   DECLARE b TINYINT DEFAULT 1; 
  12.   WHILE (a <= i_PlayerCount) DO 
  13.   -- repeat 
  14.     
  15.     
  16.    SET a = a + 1; 
  17.    -- select a; 
  18.    WHILE (b <=40) DO 
  19.     INSERT INTO qqfs_tbl_items (AuthID,Slot,CID,GTID,Nums,Endtime,Flags,UseInfo) 
  20.     VALUES 
  21.     (a,b,0,0,1,NOW(),0,1); 
  22.     SET b = b + 1; 
  23.     -- select b; 
  24.    END WHILE; 
  25.     
  26.    SET b = 1; 
  27.    -- select a; 
  28.    -- until a >= i_PlayerCount 
  29.   -- end repeat; 
  30.    END WHILE; 
  31.  END$$ 
  32.  
  33. DELIMITER ; 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Oracle循环嵌套可以使用嵌套循环语句或递归函数来实现。以下是一个嵌套循环语句的示例: ``` DECLARE outer_loop_counter NUMBER := 0; inner_loop_counter NUMBER := 0; BEGIN FOR outer_loop_counter IN 1..10 LOOP FOR inner_loop_counter IN 1..5 LOOP DBMS_OUTPUT.PUT_LINE('Outer loop counter: ' || outer_loop_counter || ' Inner loop counter: ' || inner_loop_counter); END LOOP; END LOOP; END; ``` 上面的代码将在外部循环1到10之间遍历,内部循环1到5之间遍历,并输出循环计数器的值。 递归函数的示例: ``` CREATE OR REPLACE FUNCTION recursive_function (i NUMBER) RETURN NUMBER IS BEGIN IF i = 0 THEN RETURN 0; ELSE RETURN i + recursive_function(i-1); END IF; END; ``` 上面的代码将计算从1到给定数字的累加和,例如:recursive_function(5)将返回15。函数通过递归地调用自身来实现循环嵌套。 ### 回答2: Oracle循环嵌套是指在PL/SQL编程语言中使用循环结构进行嵌套的一种技术。PL/SQL是Oracle数据库的编程语言,它允许开发人员使用循环结构来重复执行一组代码。 常见的Oracle循环嵌套结构有FOR循环嵌套和WHILE循环嵌套。 FOR循环嵌套是一种基于计数器的循环结构。通过两个或多个FOR循环嵌套,可以实现多维度的循环。例如,可以在外层循环中迭代日期,在内层循环中迭代小时,以处理每个日期的每个小时的数据。 WHILE循环嵌套则是基于条件的循环结构。通过对多个WHILE循环进行嵌套,可以实现多层次的循环。例如,可以在外层循环中检查某个条件是否为真,在内层循环中执行一组代码,以实现嵌套的逻辑控制。 无论是FOR循环嵌套还是WHILE循环嵌套,都需要注意循环的终止条件和控制变量的变化,以避免出现无限循环或不正确的结果。 循环嵌套在实际编程中非常常见,特别是在处理大量数据时。它可以提供更灵活和高效的编程方式,使开发人员能够针对不同的需求设计和实现复杂的逻辑控制。 总之,Oracle循环嵌套是一种常用的编程技术,可以通过组合多个循环结构来实现灵活的逻辑控制。对于需要重复执行一组代码的情况,循环嵌套是一个非常有用和强大的工具。 ### 回答3: Oracle循环嵌套是指在Oracle数据库中,可以使用循环结构在一个或多个循环嵌套另一个或多个循环来实现复杂的编程逻辑。 循环嵌套在编程中非常常见,可以用来遍历集合、处理多维数据或者执行重复性的操作。在Oracle中,有三种主要的循环嵌套结构:WHILE循环、FOR循环和LOOP循环。 WHILE循环是最基本的循环结构之一,它会在满足指定条件的情况下重复执行一段代码块。在循环内部可以再嵌套另一个WHILE循环,以实现更复杂的逻辑。 FOR循环是另一种常见的循环嵌套结构,它通过定义一个计数器变量和一个范围来控制循环的执行次数。在循环内部可以再嵌套另一个FOR循环,以实现多层的嵌套循环。 LOOP循环是一种无条件循环,它会一直执行循环内的代码块,直到满足退出条件才停止。在循环内部可以再嵌套另一个LOOP循环,以实现更加灵活的逻辑控制。 循环嵌套可以用来处理复杂的业务逻辑,例如在一个订单表中查询某个用户的所有订单,并对每个订单进行逐个处理。通过循环嵌套,可以逐层遍历查询结果,并针对每个订单执行特定的操作。 需要注意的是,循环嵌套在设计时需要考虑性能和效率问题,避免出现无限循环或者过多的嵌套,以免影响数据库的性能。并且在使用循环嵌套时,应该合理地利用条件判断和跳出语句来控制循环的退出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值