SQLserver--- 迴圈語句 while 介紹 例項
本文轉自:https://www.cnblogs.com/moss_tan_jun/archive/2010/08/22/1805939.html
declare @i int
set @i=1while @i<30
begin
insert into test (userid) values(@i)
set @[email protected]+1
end
---------------
while 條件
begin
執行操作
set @[email protected]+1
end
WHILE
設定重複執行 SQL 語句或語句塊的條件。只要指定的條件為真,就重複執行語句。可以使用 BREAK 和 CONTINUE 關鍵字在迴圈內部控制 WHILE 迴圈中語句的執行。
語法
WHILE Boolean_expression
{ sql_statement | statement_block }
[ BREAK ]
{ sql_statement | statement_block }
[ CONTINUE ]
引數
Boolean_expression
返回 TRUE 或 FALSE 的表示式。如果布林表示式中含有 SELECT 語句,必須用圓括號將 SELECT 語句括起來。
{sql_statement | statement_block}
Transact-SQL 語句或用語句塊定義的語句分組。若要定義語句塊,請使用控制流關鍵字 BEGIN 和 END。
BREAK
導致從最內層的 WHILE 迴圈中退出。將執行出現在 END 關鍵字後面的任何語句,END 關鍵字為迴圈結束標記。
CONTINUE
使 WHILE 迴圈重新開始執行,忽略 CONTINUE 關鍵字後的任何語句。
註釋
如果嵌套了兩個或多個 WHILE 迴圈,內層的 BREAK 將導致退出到下一個外層迴圈。首先執行內層迴圈結束之後的所有語句,然後下一個外層迴圈重新開始執行。
示例
A. 在UE巢狀的 IF...ELSE 和 WHILE 中使用 BREAK 和 CONTIN
在下例中,如果平均價格少於 $30,WHILE 迴圈就將價格加倍,然後選擇最高價。如果最高價少於或等於 $50,WHILE 迴圈重新啟動並再次將價格加倍。該迴圈不斷地將價格加倍直到最高價格超過 $50,然後退出 WHILE 迴圈並列印一條訊息。
USE pubs --選擇pubs資料庫
GOWHILE (SELECT AVG(price) FROM titles) < $30
BEGIN
UPDATE titles
SET price = price * 2
SELECT MAX(price) FROM titles
IF (SELECT MAX(price) FROM titles) > $50
BREAK
ELSE
CONTINUE
END
PRINT 'Too much for the market to bear'
B. 在帶有遊標的過程中使用 WHILE
以下的 WHILE 結構是名為 count_all_rows 過程中的一部分。下例中,該 WHILE 結構測試用於遊標的函式 @@FETCH_STATUS 的返回值。因為 @@FETCH_STATUS 可能返回 –2、-1 或 0,所以,所有的情況都應進行測試。如果某一行在開始執行此儲存過程以後從遊標結果中刪除,將跳過該行。成功提取 (0) 後將執行 BEGIN...END 迴圈內部的 SELECT 語句。
USE pubs
DECLARE tnames_cursor CURSOR --定義一個遊標FOR
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
OPEN tnames_cursor
DECLARE @tablename sysname
--SET @tablename = 'authors'
FETCH NEXT meFROM tnames_cursor INTO @tablena
WHILE (@@FETCH_STATUS <> -1)
BEGIN
IF (@@FETCH_STATUS <> -2)
BEGIN
SELECT @tablename = RTRIM(@tablename)
EXEC ('SELECT ''' + @tablename + ''' = count(*) FROM '
+ @tablename )
PRINT ' '
END
FETCH NEXT FROM tnames_cursor INTO @tablename
END
CLOSE tnames_cursor
DEALLOCATE tnames_cursor
declare @i int
declare @quxian varchar(2000),@city varchar(2000),@sheng varchar(2000),@hot int
set @i=1
while @i<30
begin
set @quxian='西湖'
set @city='杭州'
set @sheng='浙江'
set @[email protected]
insert into address (quxian,city,sheng,hot) values(@quxian,@city,@sheng,@hot)
print @i
set @[email protected]+1
end
如果對遊標的定義不太熟悉,建議檢視下sql server的遊標介紹
遊標參考連結:https://wenku.baidu.com/view/198695db76a20029bd642d15.html
相關推薦
SQLserver--- 迴圈語句 while 介紹 例項
本文轉自:https://www.cnblogs.com/moss_tan_jun/archive/2010/08/22/1805939.htmldeclare @i intset @i=1while @i<30begininsert into test (userid
迴圈語句——while
while迴圈語句的格式 while 條件: 條件滿足時,做的事情1 條件滿足時,做的事情2 ..... 例如: 輸入5次’hello python’: 1.定義一個整數變數,記錄迴圈次數 i=1 2.開始迴圈 while i<=5: print
Python基礎(linux下)---迴圈語句while,for和字串
for 迴圈的語法: #for 變數 in range(10): 迴圈需要執行的程式碼 #else: 迴圈結束時需要執行的程式碼 #1+2+3+…+100= c語言或者java: sum = 0 for(int i=1;i<=100;i++): sum = sum +
python基礎學習筆記——迴圈語句(while、for)
while 迴圈 流程控制語句 while 1、基本迴圈 while 條件: # 迴圈體 # 如果條件為真,那麼迴圈則執行 # 如果條件為假,那麼迴圈不執行 2、break break 用於退出當層迴圈
Ruby基礎知識-迴圈語句 while、util、for
while: print("the use of while"); a=1 while a <10 print a," " a=a+1 end until: print("the use of until "); a=1 until a >=10 print a,"
PL/SQL基本迴圈語句(Loop)操作例項
基本的迴圈結構封裝在LOOP和END LOOP語句之間語句序列。隨著每次迭代,語句順序被執行,然後在迴圈的頂部控制過程。對應的原始碼:-- Created on 2018/3/23 by E.W
Java中的迴圈語句while迴圈、for迴圈、dowhile迴圈、死迴圈、巢狀for迴圈
/* 一、while迴圈迴圈語句:可以讓一部分程式碼反覆執行while迴圈:編寫格式:while(條件){迴圈體}條件:當條件為true,就執行迴圈體,執行完迴圈體後程式再次執行while中的條件,如果條件還是true,繼續執行迴圈體知道條件是false的時候,迴圈結束
Linux中迴圈語句while和until的區別
1 while【滿足條件就執行】 #!/bin/bash sum=0 i=1; #當i<=100時執行while [ $i -le 100 ] do sum=$(($sum+$i)) i=$(($i+1))
Python趣味入門5:迴圈語句while
跟著小牛叔,找準正確程式設計入門姿勢,每天只要閱讀10分鐘。 任何語言都有迴圈語句,在Python裡迴圈更是變化無窮,有基本的迴圈,有迴圈else語句,引伸出來的還有迭代器、推導式,咱們先學習最簡單的一種。 While迴圈 while 條件判斷語句: 子程式碼1 子程式碼2 子程式碼3
【Java學習】for、while、do...while迴圈語句的學習,斐波那契數列例項。
for迴圈: 先判斷再迴圈,適用於迴圈次數已知。 for迴圈語法:for(表示式1;表示式2;表示式3){ 語句; //迴圈體 } 表示式1、3:任意表達式語句或空語句 表示式2:必須為布林型常量、變數或表示式 執行過程: 例項:求1+2+3+…+100的
Java基礎知識-迴圈語句的使用介紹(for、while、do-while)
今天給大家介紹一下Java中迴圈語句的使用用法和每種迴圈語句的使用場景。首先是最經常使用的for語句,下面看看for語句的結構:for 語句的基本結構如下所示:for(初始化表示式;判斷表示式;遞增(遞
sqlserver 中while迴圈語句的書寫格式
--宣告變數; DECLARE @i int DECLARE @username varchar(30) DECLARE @password varchar(30) Set @i = 1000 --開始 迴圈 插入資料; WHILE @i < 1000 B
PL/SQL WHILE迴圈語句操作例項講解
WHILE迴圈語句在PL/SQL程式語言,只要給定的條件為真,則執行目標語句多次。給出求10的階乘的while迴圈操作原始碼:-- Created on 2018/3/23 by E.WANG /*
python for和while迴圈語句例項教程
#輸出10以下的非負整數中的偶數 print '10以下的非負整數中的偶數為:' for integer in range(10): # range(10)的返回的是整數0~9 if integer % 2 == 0: print in
Python:while迴圈語句
while語句 while語句: 作用: 根據一定條件,重複執行一條語句或多條語句 語法: while 真值表達式: 語句塊1(此部分語句可能會重複執行多次) else: 語句塊2 說明: 1. 先執行真值表達式,得到布林值為True或False 2. 如果
以猜數字遊戲為例理解C語言while迴圈語句和if條件
迴圈語句和條件語句是程式語言的基礎, 而while迴圈語句與if條件語句是條件語句和迴圈語句的基礎. 因此我們在學習C語言的開始要好好學習與認真思考著兩個語句. 本次將藉助簡單的猜數字遊戲開幫助大家理解. 首先我們會讓系統隨機獲得一個數字,然後讓玩家輸入一個數字,系統會提醒是"高了"
Python學習-while迴圈語句
Python 程式設計中 while 語句用於迴圈執行程式,即在某條件下,迴圈執行某段程式,以處理需要重複處理的相同任務。即重複性的做一件事情 語法形式如下: while 判斷條件: 條件滿足執行語句…… 可以通過下面的列子來理解while迴圈的基本使用 while 1=
Java迴圈語句之 do...while
do...while 迴圈與 while 迴圈語法有些類似,但執行過程差別比較大。 語法: 執行過程: <1>、 先執行一遍迴圈操作,然後判斷迴圈條件是否成立 <2>、 如果條件成立,繼續執行< 1 > 、< 2 >,直到迴圈條件不成立為
MySQL--儲存過程的迴圈語句程式碼筆記--while、repeat和loop
mysql> delimiter $$ mysql> create table testB -> ( -> id int(6) not null -> ) $$ Query OK, 0 rows affected (0.86 sec) mysq
python初學一(for迴圈語句介紹)
一、for迴圈基本知識: 1、for語句語法: for 與 while不同的是,for