SQL ServerのT-SQLのループ文のサンプルです。
目次
サンプル | ループ処理を行う(WHILE文) |
指定した回数ループする | |
ループを抜ける(break) | |
ループの先頭に戻る(continue) |
ループ処理を行う(WHILE文)
WHILE 条件 BEGIN 処理 END |
- 処理を繰り返す時に使用します。最初にWHILEを書くのでWHILE文と呼ばれます。
- 条件がtrueの間、処理を繰り返します。
- 条件がfalseの場合、ループ処理を終了します。
指定した回数ループする
CREATE PROCEDURE dbo.TEST1
AS
DECLARE @num1 INT
SET @num1 = 1
WHILE @num1 < 5
BEGIN
PRINT @num1 --1 2 3 4が出力される
SET @num1 = @num1 + 1
END
6行目からWHILE文です。変数num1の値が5より小さい間処理を繰り返します。
9行目は、変数の値に1を加算しています。
ループを抜ける(break)
breakでループを抜けるサンプルです。
CREATE PROCEDURE dbo.TEST1
AS
DECLARE @num1 INT
SET @num1 = 1
WHILE @num1 < 10
BEGIN
IF @num1 = 3
BREAK
SET @num1 = @num1 + 1
END
PRINT @num1 --3が出力される
6行目からWHILE文です。
8行目のIF文の条件に合致した場合、9行目のbreakでWHILE文を抜けます。
ループの先頭に戻る(continue)
continueでループの先頭に戻るサンプルです。
CREATE PROCEDURE dbo.TEST1
AS
DECLARE @num1 INT
SET @num1 = 1
WHILE @num1 < 4
BEGIN
IF @num1 = 2
BEGIN
SET @num1 = @num1 + 1
CONTINUE
END
PRINT @num1 --1 3が出力される
SET @num1 = @num1 + 1
END
11行目のcontinueは、次は67行目を実行します。そのため13行目は実行されません。
このサンプルでは10行目の加算がないと無限ループになるので注意して下さい。
関連の記事