SQLでFizzBuzz
この流れにって、SQLでFizzBuzzを書いてみました。
最近FizzBuzzをblogで書くといいよみたいな流れになっている(曲解)ので
以下、FizzBuzzのSQLです。なお、このSQLの動作確認は「mysql Ver 5.0.67」で行いました。
/* 一時テーブルを作成 */ create temporary table tmp ( i int ); /* 一時テーブルに1〜100の値を挿入 */ insert into tmp values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10), (11),(12),(13),(14),(15),(16),(17),(18),(19),(20), (21),(22),(23),(24),(25),(26),(27),(28),(29),(30), (31),(32),(33),(34),(35),(36),(37),(38),(39),(40), (41),(42),(43),(44),(45),(46),(47),(48),(49),(50), (51),(52),(53),(54),(55),(56),(57),(58),(59),(60), (61),(62),(63),(64),(65),(66),(67),(68),(69),(70), (71),(72),(73),(74),(75),(76),(77),(78),(79),(80), (81),(82),(83),(84),(85),(86),(87),(88),(89),(90), (91),(92),(93),(94),(95),(96),(97),(98),(99),(100); /* FizzBuzzを実行 */ select case when n = "" then i else n end r from ( select i, case when i % 5 = 0 then concat(n, "Buzz") else n end n from ( select i, case when i % 3 = 0 then concat(n, "Fizz") else n end n from ( select i, "" n from tmp ) t1 ) t2 ) t3; /* 一時テーブルを削除 */ drop table tmp;
実行結果は以下の通りです。(select文の結果のみ記載)
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
r |
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-
1 |
2 |
Fizz |
4 |
Buzz |
Fizz |
7 |
8 |
Fizz |
Buzz |
11 |
Fizz |
13 |
14 |
FizzBuzz |
16 |
17 |
Fizz |
19 |
Buzz |
Fizz |
22 |
23 |
Fizz |
Buzz |
26 |
Fizz |
28 |
29 |
FizzBuzz |
31 |
32 |
Fizz |
34 |
Buzz |
Fizz |
37 |
38 |
Fizz |
Buzz |
41 |
Fizz |
43 |
44 |
FizzBuzz |
46 |
47 |
Fizz |
49 |
Buzz |
Fizz |
52 |
53 |
Fizz |
Buzz |
56 |
Fizz |
58 |
59 |
FizzBuzz |
61 |
62 |
Fizz |
64 |
Buzz |
Fizz |
67 |
68 |
Fizz |
Buzz |
71 |
Fizz |
73 |
74 |
FizzBuzz |
76 |
77 |
Fizz |
79 |
Buzz |
Fizz |
82 |
83 |
Fizz |
Buzz |
86 |
Fizz |
88 |
89 |
FizzBuzz |
91 |
92 |
Fizz |
94 |
Buzz |
Fizz |
97 |
98 |
Fizz |
Buzz |
-
-
-
-
-
-
-
-
-
-
- +
-
-
-
-
-
-
-
-
-