Posted at

SQLでFizzBuzz

More than 3 years have passed since last update.

こちらに張り合ってみました。

SQLで再帰を利用したFizzBuzz。

DBによって微妙に書き方が変わってくるけど、以下はPostgreSQLで動作確認。

WITH RECURSIVE TMP(NUM) AS (

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

最近はてな始めました。