for循环中 嵌套 sql vbs +access sql 循环

PL/SQL允许使用一个循环内嵌套另一个循环。下面的内容展示几个例子来说明这个概念。
在PL/SQL嵌套基本LOOP语句的语法如下:
Sequence of statements1
Sequence of statements2
在PL/SQL 循环FOR语句嵌套的语法如下:
FOR counter1 IN initial_value1 .. final_value1 LOOP
sequence_of_statements1
FOR counter2 IN initial_value2 .. final_value2 LOOP
sequence_of_statements2
在Pascal嵌套WHILE 循环语句的语法如下:
WHILE condition1 LOOP
sequence_of_statements1
WHILE condition2 LOOP
sequence_of_statements2
下面的程序使用一个基本嵌套循环,找出2-100中的素数:
i number(3);
j number(3);
exit WHEN ((mod(i, j) = 0) or (j = i));
j := j +1;
IF (j = i ) THEN
dbms_output.put_line(i || ' is prime');
i := i + 1;
exit WHEN i = 50;
当上述代码在SQL提示符执行时,它产生了以下结果:
2 is prime
3 is prime
5 is prime
7 is prime
11 is prime
13 is prime
17 is prime
19 is prime
23 is prime
29 is prime
31 is prime
37 is prime
41 is prime
43 is prime
47 is prime
PL/SQL procedure successfully completed.
加QQ群啦!
JAVA技术QQ群:
MySQL/SQL语句QQ群:
Python QQ群:
大数据开发技术:
本站所有代码下载:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"代码下载" 获取。
上一篇:下一篇:我们使用SQL语句处理数据时,可能会碰到一些需要循环遍历某个表并对其进行相应的操作(添加、修改、删除),这时我们就需要用到咱们在编程中常常用的for或foreach,但是在SQL中写循环往往显得那么吃力,翻遍网上的资料,找不到几个正确的并能执行的循环处理数据的方法,在这里,我来给大家分享一下!
要SQL中写类似for循环,我这里使用的是SQL中的游标来实现,当然SQL中也有for loop、while do等,我这里仅以使用游标方式来进行示例,其它的方式大家有兴趣可以研究一下,成功的同学可以在下面回复一下并把代码贴出来,与大家分享!
闲话少说,上示例:
1. 利用游标循环更新、删除MemberAccount表中的数据
DECLARE My_Cursor CURSOR --定义游标FOR (SELECT * FROM dbo.MemberAccount) --查出需要的集合放到游标中OPEN My_C --打开游标FETCH NEXT FROM My_C --读取第一行数据WHILE @@FETCH_STATUS = 0
--UPDATE dbo.MemberAccount SET UserName = UserName + 'A' WHERE CURRENT OF My_C --更新
--DELETE FROM dbo.MemberAccount WHERE CURRENT OF My_C --删除
FETCH NEXT FROM My_C --读取下一行数据
ENDCLOSE My_C --关闭游标DEALLOCATE My_C --释放游标GO
2. 利用游标循环更新MemberService表中的数据(更新每个用户所购买服务的时间)
DECLARE @UserId varchar(50) DECLARE My_Cursor CURSOR --定义游标FOR (SELECT UserId FROM dbo.MemberAccount) --查出需要的集合放到游标中OPEN My_C --打开游标FETCH NEXT FROM My_Cursor INTO @UserId; --读取第一行数据(将MemberAccount表中的UserId放到@UserId变量中)WHILE @@FETCH_STATUS = 0
PRINT @UserId; --打印数据(打印MemberAccount表中的UserId)
UPDATE dbo.MemberService SET ServiceTime = DATEADD(Month, 6, getdate()) WHERE UserId = @UserId; --更新数据
FETCH NEXT FROM My_Cursor INTO @UserId; --读取下一行数据(将MemberAccount表中的UserId放到@UserId变量中)
ENDCLOSE My_C --关闭游标DEALLOCATE My_C --释放游标GO
上面的两个例子应该可以解决我们在SQL中使用循环的所有需求,如果不能满足,自己可以根据以上两个示例进行扩展,希望能帮各位解决一些类似的问题。
阅读(...) 评论()2014年5月 Web 开发大版内专家分月排行榜第二2014年4月 Web 开发大版内专家分月排行榜第二
2014年3月 Web 开发大版内专家分月排行榜第三2014年2月 Web 开发大版内专家分月排行榜第三2013年7月 .NET技术大版内专家分月排行榜第三2013年6月 .NET技术大版内专家分月排行榜第三2012年9月 .NET技术大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。大家看看这个for循环语句中的sql为什么只执行一次 — 编程爱好者社区
主题:大家看看这个for循环语句中的sql为什么只执行一次
[专家分:130]
for&&&i=0&&&to&&&2&rs.open&&&update&daoyou&set&num3='1236'&where&id=&&i&,conn,1,3&response.write&&&&update&daoyou&set&num3='1236'&where&id=&&i&&&p&&&next&&&sql语句&的意思是让&daoyou表中id从0到2共三个记录的字段num3全部相同显示语句response.write&,都执行了三次,并且显示没有问题,可update只执行了当i=0的第一次,为什么啊
最后更新于: 17:00:00
本帖地址:&
回复列表 (共8个回复)
[专家分:1340]
sql语句有问题可以用conn.execute(sql)sql=&update&...&&&&$i什么意思看不懂
[专家分:130]
楼上的一样只执行一次另,sql语句没有问题
[专家分:1340]
&update&daoyou&set&num3='&&num3&&'&where&id=&$isql中没有这样的写法&$i什么意思
[专家分:130]
[quote]&update&daoyou&set&num3='&&num3&&'&where&id=&$isql中没有这样的写法&$i什么意思[/quote]不好意思,我是在贴本贴时写错的,源码没错,是&
[专家分:1340]
那你第一步先确定此数据表有可以操作的记录第二步&rs.open&&&update&daoyou&set&num3='1236'&where&id=&&cstr(i)&,conn,1,3&这样就没问题了
[专家分:40]
不可能有错的哦~~~~..完整代码:&%dim&rs,sql,iset&rs=server.CreateObject(&adodb.recordset&)for&i=1&to&3sql=&update&user&set&user='修改'&where&id=&&i&&&rs.open&sql,conn,1,3response.Write&sql&&&br&&next%&
[专家分:130]
我把我实际遇到情况贴出来吧man的值是由上一级的复选框选过来的,后来发现执行后出来以上情况,怎么也想不通,后来无意中让程序输出的name的值,发出原因是name中含空格,去除就OK,特此贴出来,希望对遇到这类情况的朋友有帮助!man=split(name,&,&)for&&&i=0&&&to&&ubound(man)sql=&update&daoyou&set&dateS=''&where&name='&&man(i)&&'&&conn.execute(sql)response.write&man(i)&&&p&&&next&&&屏显如下:张三李四王五但数据表实际只执行了当name=&张三&这一次
[专家分:12820]
1、相同名称表单控件,传递过来的值是用逗号和空格分隔的。&&&&如果要用split切割,必须用man=split(name,&,&&)&&&&不过还有一个简单的方法&&&&For&Each&item&in&Request(&name&)&&&&&&SQL=&update&daoyou&set&dateS=''&where&name='&&&item&&&'&&&&&Next2、最好把所有的SQL语句合并成一句,一次执行,减少数据库链接。
您尚未登录,请登录后再回复。}

我要回帖

更多关于 sqlserver 嵌套循环 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信