Home [SQL] While 迴圈
Post
Cancel

[SQL] While 迴圈

設定重複執行 SQL 陳述式或陳述式區塊的條件。
只要符合指定的條件,就會重複執行這些陳述式。
您可以在迴圈內,利用 BREAKCONTINUE 關鍵字來控制 WHILE 迴圈陳述式的執行情況。

Break:可以無條件的結束 while 語法形成的迴圈(結束迴圈)。
Continue:則會忽略以下的程式而從迴圈的開始處重新執行(開始下一個的迴圈)。

語法

1
2
WHILE Boolean_expression   
     { sql_statement | statement_block | BREAK | CONTINUE }  

範例

迴圈跑10次

1
2
3
4
5
6
7
declare @i int --宣告變數
set @i = 0 --設定初始值為0
while (@i < 10) --迴圈執行10次(當變數i小於10)
    set @i += 1 --執行一次就i+1

--查看i值
select @i --執行結果: 10

範例 (Break、Continue)

1
2
3
4
5
6
7
8
9
10
11
declare @i int = 0 --宣告變數i,初始值設為0
while (@i <= 10) --迴圈從0~10
begin
    set @i += 1 --設定i+1
    if @i = 2 continue --以下直接不做,跳回到while
    if @i = 5 break --直接跳離結束迴圈
    select @i --顯示當下的i值 (也可用 print @i 印出)
end

--執行結果:
--134

MSDN - WHILE (Transact-SQL)

This post is licensed under CC BY 4.0 by the author.