SQL SERVER while循環


SQL數據庫中,可以通過WHILE實現循環,下面就將為您介紹SQL循環執行while控制,希望對您提升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 關鍵字后的任何語句。

實例:

USE 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

設置個變量,就能實現for(i=0;i<10,i++)
DECLARE @i int
set @i=0

WHILE @i<10
BEGIN
//語句序列
   ...
   set @i=@i+1
END

示例
A. 在嵌套的 IF...ELSE 和 WHILE 中使用 BREAK 和 CONTINUE
在下例中,如果平均價格少於 $30,WHILE 循環就將價格加倍,然后選擇最高價。如果最高價少於或等於 $50,WHILE 循環重新啟動並再次將價格加倍。該循環不斷地將價格加倍直到最高價格超過 $50,然后退出 WHILE 循環並打印一條消息。

USE 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'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM