1. 程式人生 > >SQLserver--- 迴圈語句 while 介紹 例項

SQLserver--- 迴圈語句 while 介紹 例項

本文轉自:https://www.cnblogs.com/moss_tan_jun/archive/2010/08/22/1805939.html

declare @i int

set @i=1
while @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資料庫

GO
WHILE (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(初始化表示式;判斷表示式;遞增(遞

sqlserverwhile迴圈語句的書寫格式

--宣告變數; 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