プログラ生活

プログラム初学者のためのポイントを書いていこうと思います。たまに脇道それた記事もありますが、息抜きだとおもって気長にお付き合いください。

【SQL Server(連載)】WHILE文 -28-

www.pon-x.jp

前回の続き

今回は繰り返し処理を行うためのWHILE文を紹介します。

WHILE文

繰り返し処理はWHILEの後に条件式をかいて、条件式がTRUEな限り繰り返し処理を行います。

こんな感じです。

WHILE [条件式]
BEGIN

   -- ##################
   -- 何かしらの処理
   -- ##################

END

具体的に書いてみましょう。
1から10までをPRINTでコメント出力してみます。

DECLARE @CNT INT

SET @CNT = 1

WHILE @CNT <= 10
    BEGIN
        PRINT @CNT

        SET @CNT += 1
    END

こんな感じに出力されました。
f:id:hanabusa-snow:20201212221034p:plain

CONTINUE

繰り返し処理の中で特定の処理をスキップすることができます。
この時、CONTINUEを使います。

WHILE [条件式]
BEGIN

   IF 条件式
         CONTINUE

   -- ##################
   -- 何かしらの処理
   -- ##################

END

試してみます。
1から10のうち5を抜かしてコメント出力します。

DECLARE @CNT INT

SET @CNT = 1

WHILE @CNT <= 10
    BEGIN
        IF @CNT = 5
            BEGIN
                SET @CNT += 1

                CONTINUE
            END

        PRINT @CNT

        SET @CNT += 1
    END

こんな感じに出力できます。
f:id:hanabusa-snow:20201212221401p:plain
@CNTが5の時にPRINT @CNTが処理されていないことがわかりますね。

BREAK

繰り返し処理において、途中で処理を終了させてあげたいときにBREAKを使うことになります。

WHILE [条件式]
BEGIN

   IF 条件式
         BREAK

   -- ##################
   -- 
何かしらの処理
   -- ##################

END

では試してみます。
1から10までの繰り返し処理において、5までで終了させてみます。

DECLARE @CNT INT

SET @CNT = 1

WHILE @CNT <= 10
    BEGIN
        PRINT @CNT

        IF @CNT = 5
            BREAK

        SET @CNT += 1
    END

こんな感じに出力されます。
f:id:hanabusa-snow:20201212221719p:plain
@CNTが5の時に、処理が終了されたのがわかると思います。







以上、今回はここまで。
次回は繰り返し処理を使った例も扱っていきたいと思います。