FizzBuzz問題を考えてみた(SQLスキル判定用)
今回は、かの有名なFizzBuzz問題を取り上げてみます。
-
- 1から100まで表示すること
-
- その数が3で割り切れるなら"Fizz"を表示すること
-
- その数が5で割り切れるなら"Buzz"を表示すること
-
- その数が両方で割り切れるなら"FizzBuzz"を表示すること
簡単。。です。。。よね?;
この問題を、SQLスキル判定用に拡張してみたいと思います。
でも、「SQLで」というだけなら、PL/SQL、Transact-SQLなどでLOOP書けばいいです。
SQLが不得意でも、何らかのプログラミング経験者なら、制御構文ちょっとググれば誰でも書けそうです。
だもんで、シバリを追加してみます。
- FizzBuzz問題(SQLクエリ版)
-
- 1から100まで表示すること
-
- その数が3で割り切れるなら"Fizz"を表示すること
-
- その数が5で割り切れるなら"Buzz"を表示すること
-
- その数が両方で割り切れるなら"FizzBuzz"を表示すること
-
- SQLクエリで完結すること
-
- テーブルは使用しないこと
ここまでで十分な気もしますが、さらにシバリを追加してみましょう。
- FizzBuzz問題(SQLマニアックス版)
-
- 1から100まで表示すること
-
- その数が3で割り切れるなら"Fizz"を表示すること
-
- その数が5で割り切れるなら"Buzz"を表示すること
-
- その数が両方で割り切れるなら"FizzBuzz"を表示すること
-
- SQLクエリで完結すること
-
- テーブルを使用しないこと
-
- CASE式を使用しないこと
-
- 結合を効果的に使うこと
解けるかな?
ちなみに、RDBMSはMySQL、Oracle、SQL Server、DB2あたりって事で。