Песня про 99 бутылок пива

Поистине замечательный ресурс для программиста любого ранга и языка – www.99-bottles-of-beer.net, в котором более чем 1500 примеров реализации вывода песни про 99 бутылок пива на самых разных языках программирования и с использованием различных приемов. Есть и варианты на разных диалектах SQL. В свободное от работы время я соорудил и свой скрипт, не совсем верно передав текст песни, но идея, думаю, будет понятна.

SELECT CASE MOD (400 - LEVEL, 4)
          WHEN 3
          THEN
             TRUNC ((400 - LEVEL) / 4) || ' bottles of beer on the wall'
          WHEN 2
          THEN
             TRUNC ((400 - LEVEL) / 4) || ' bottles'
          WHEN 1
          THEN
             'Drink 1 bottle...'
          ELSE
             CASE
                WHEN LEVEL > 396
                THEN
                   TRUNC ((400 - LEVEL) / 4) - 1 || ' bottles left'
                ELSE
                   'No more bottles on the wall'
             END
       END
  FROM DUAL CONNECT BY LEVEL >= 396

Результат:

99 bottles of beer on the wall
99 bottles
Drink 1 bottle…
98 bottles left
98 bottles of beer on the wall
98 bottles
Drink 1 bottle…

Drink 1 bottle…
1 bottles left
1 bottles of beer on the wall
1 bottles
Drink 1 bottle…
No more bottles on the wall

Добавить комментарий