100日でSQLの達人になる@LeetCode! Day53 <MS SQL Serverでループ処理>


MS SQL Serverでループ処理をする

前回に引き続きLeetCodeの問題はお休み。
今回のテーマはループ処理です。

前回同様にdb<>fiddleを使って、テーブルにデータを格納するクエリを書いていきます。

ループ処理の基本

SQL
WHILE 条件式(条件式を満たす間ループは継続される)
BEGIN
    --繰り返し実行したいコードを記載する
END
-- BREAKでループ処理を中断
-- CONTINUEでループ処理の最初へ戻る

下記が実行例です。

CREATE TABLE tbl1 (id INT)

INSERT INTO tbl1 (id) VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9),(10)

DECLARE @var1 INT = 1, @var2 INT = 0

WHILE @var1 < 10
BEGIN
    SET @var2= @var2+@var1
    PRINT @var2
    SET @var1= @var1+1
END

1
3
6
10
15
21
28
36
45
10 rows affected

db<>fiddle here

今日のポイントはMS SQL Serverでループ処理をするとした。