SQLでFizzBuzz!

少し遅くなりましたが、あけましておめでとうございます。


新年明けて間もなく2週間経とうとしているのに・・・今年の目標はまだ決まってません(汗)
でも、去年の秋ぐらいからSQLにはまったので、とりあえず今年はそれをマスターできればなと思っています。


なので、その第一歩としてやってみました・・・
SQLFizzBuzz


データベース定義

CREATE TABLE FizzBuzz(
  Number    INTEGER        NOT NULL    PRIMARY KEY,
  Answer    VARCHAR(8)     NOT NULL
);

FizzBuzzを挿入(必要な回数分だけ)

INSERT INTO FizzBuzz 
     SELECT Number,
            (CASE WHEN MOD(Number, 15) = 0 THEN 'FizzBuzz'
                  WHEN MOD(Number, 5)  = 0 THEN 'Buzz'
                  WHEN MOD(Number, 3)  = 0 THEN 'Fizz'
                  ELSE Number END) AS Answer
       FROM (SELECT (COUNT(*) + 1) AS Number FROM FizzBuzz) AS Temp;

結果を確認

SELECT * FROM FizzBuzz ORDER BY Number;


実行結果

Number Answer
1 1
2 2
3 Fizz
4 4
5 Buzz
6 Fizz
7 7
8 8
9 Fizz
10 Buzz
11 11
12 Fizz
13 13
14 14
15 FizzBuzz


整数の集合を作れれば、何回もINSERTする必要がなかったんですが思いつかず orz
精進していきたいと思います・・・。



ちなみに。
終了後に検索してみたら、意外とやっている方がいっぱいいてびっくりしました。
SQL FizzBuzz - Google 検索