わさび唐辛子

いざという時のための備忘録

【SQL】SQLでFizzBuzz

SQL再帰

 

DBによって書き方が違うけど、SQLFizzBuzz

 

WITH RECURSIVE TMP(NUM) AS (
    SELECT 1 AS NUM
    UNION ALL
    SELECT NUM + 1 FROM TMP WHERE NUM < 20
)
SELECT
    CASE
        WHEN NUM % 3 = 0 AND NUM % 5 = 0 THEN 'FIZZBUZZ'
        WHEN NUM % 3 = 0 THEN 'FIZZ'
        WHEN NUM % 5 = 0 THEN 'BUZZ'
        ELSE CAST(NUM AS CHAR(2))
    END
FROM
    TMP

 

結果は以下のとおり。

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz

広告を非表示にする