FizzBuzz問題を考えてみた(SQLスキル判定用)

今回は、かの有名なFizzBuzz問題を取り上げてみます。

    • 1から100まで表示すること
    • その数が3で割り切れるなら"Fizz"を表示すること
    • その数が5で割り切れるなら"Buzz"を表示すること
    • その数が両方で割り切れるなら"FizzBuzz"を表示すること

簡単。。です。。。よね?;


この問題を、SQLスキル判定用に拡張してみたいと思います。

でも、「SQLで」というだけなら、PL/SQLTransact-SQLなどでLOOP書けばいいです。

SQLが不得意でも、何らかのプログラミング経験者なら、制御構文ちょっとググれば誰でも書けそうです。


だもんで、シバリを追加してみます。

    • 1から100まで表示すること
    • その数が3で割り切れるなら"Fizz"を表示すること
    • その数が5で割り切れるなら"Buzz"を表示すること
    • その数が両方で割り切れるなら"FizzBuzz"を表示すること
    • SQLクエリで完結すること
    • テーブルは使用しないこと


ここまでで十分な気もしますが、さらにシバリを追加してみましょう。

    • 1から100まで表示すること
    • その数が3で割り切れるなら"Fizz"を表示すること
    • その数が5で割り切れるなら"Buzz"を表示すること
    • その数が両方で割り切れるなら"FizzBuzz"を表示すること
    • SQLクエリで完結すること
    • テーブルを使用しないこと
    • CASE式を使用しないこと
    • 結合を効果的に使うこと


解けるかな?



ちなみに、RDBMSMySQLOracleSQL ServerDB2あたりって事で。