欢迎来到天天文库
浏览记录
ID:62483564
大小:9.46 KB
页数:9页
时间:2021-05-09
《sql循环语句的写法.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、sql循环语句的写法SQL循环语句declare@iintset@i=1while@i<30begininsertintotest(userid)values(@i)set@i=@i+1endwhile条件begin执行操作set@i=@i+1endWHILE设置重复执行SQL语句或语句块的条件。只要指定的条件为真,就重复执行语句。可以使用BREAK和CONTINUE关键字在循环内部控制WHILE循环中语句的执行。语法WHILEBoolean_expression{sql_statement
2、statement_block}[BREAK]{sql_statement
3、statem
4、ent_block}[CONTINUE]参数Boolean_expression返回TRUE或FALSE的表达式。如果布尔表达式中含有SELECT语句,必须用圆括号将SELECT语句括起来。{sql_statement
5、statement_block}Transact-SQL语句或用语句块定义的语句分组。若要定义语句块,请使用控制流关键字BEGIN和END。BREAK导致从最内层的WHILE循环中退出。将执行出现在END关键字后面的任何语句,END关键字为循环结束标记。CONTINUE使WHILE循环重新开始执行,忽略CONTINUE关键字后的任何语句。注释如果嵌套了两个或多个WHIL
6、E循环,内层的BREAK将导致退出到下一个外层循环。首先运行内层循环结束之后的所有语句,然后下一个外层循环重新开始执行。示例A.在嵌套的IF...ELSE和WHILE中使用BREAK和CONTINUE在下例中,如果平均价格少于$30,WHILE循环就将价格加倍,然后选择最高价。如果最高价少于或等于$50,WHILE循环重新启动并再次将价格加倍。该循环不断地将价格加倍直到最高价格超过$50,然后退出WHILE循环并打印一条消息。USEpubsGOWHILE(SELECTAVG(price)FROMtitles)<$30BEGINUPDATEtitlesSETprice=price*
7、2SELECTMAX(price)FROMtitlesIF(SELECTMAX(price)FROMtitles)>$50BREAKELSECONTINUEENDPRINT'Toomuchforthemarkettobear'B.在带有游标的过程中使用WHILE以下的WHILE结构是名为count_all_rows过程中的一部分。下例中,该WHILE结构测试用于游标的函数@@FETCH_STATUS的返回值。因为@@FETCH_STATUS可能返回-2、-1或0,所以,所有的情况都应进行测试。如果某一行在开始执行此存储过程以后从游标结果中删除,将跳过该行。成功提取(0)后将执行B
8、EGIN...END循环内部的SELECT语句。USEpubsDECLAREtnames_cursorCURSORFORSELECTTABLE_NAMEFROMINFORMATION_SCHEMA.TABLESOPENtnames_cursorDECLARE@tablenamesysname--SET@tablename='authors'FETCHNEXTFROMtnames_cursorINTO@tablenameWHILE(@@FETCH_STATUS<>-1)BEGINIF(@@FETCH_STATUS<>-2)BEGINSELECT@tablename
9、=RTRIM(@tablename)EXEC('SELECT'''+@tablename+'''=count(*)FROM'+@tablename)PRINT''ENDFETCHNEXTFROMtnames_cursorINTO@tablenameENDCLOSEtnames_cursorDEALLOCATEtnames_cursorC.延伸:--定义变量:declare@A1INT,@A2INT,@A3INT--定义游标DECLAREmy_CurCURSORFORSELECTA1,A2,A3FROMA--打开游标OPENmy_Cur--游标滚到下一行FETCHNEXTFROMmy_C
10、urINTO@A1,@A2,@A3--循环直到游标逐行读取完数据WHILE@@FETCH_STATUS=0BEGIN/*--这里做你想做的事情--请问print@A1+@A2+@A3--怎么实现,谢谢*/--游标滚到下一行FETCHNEXTFROMmy_CurINTO@A1,@A2,@A3END--关闭游标CLOSEmy_Cur--释放资源DEALLOCATEmy_Cur如何在SQL中使用循环结构解答FOR,LOOP,WHILE,REPEAT是
此文档下载收益归作者所有