SQL Server T-SQLのWHILE文のサンプル

SQL ServerのT-SQLのループ文のサンプルです。

確認環境
・Microsoft SQL Server 2019

目次

サンプル ループ処理を行う(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行目の加算がないと無限ループになるので注意して下さい。

関連の記事

SQL Server T-SQLのif文のサンプル
SQLServer 文字列を切り出す(SUBSTRING)

△上に戻る