ONLY DO WHAT ONLY YOU CAN DO

こけたら立ちなはれ 立ったら歩きなはれ

SQL で FizzBuzz

with a as 
(
	select 0 as n from dual
	union all
	select 1      from dual
)
select
	case
		when mod(n, 3) = 0 and mod(n, 5) = 0 then 'FizzBuzz'
		when mod(n, 3) = 0                   then 'Fizz'
		when                   mod(n, 5) = 0 then     'Buzz'
		else to_char(n)
	end
from
(
select
	a01.n
+	a02.n *  2
+	a04.n *  4
+	a08.n *  8
+	a16.n * 16
+	a32.n * 32
+	a64.n * 64 as n
from
	a a01
,	a a02
,	a a04
,	a a08
,	a a16
,	a a32
,	a a64
)
where
	n between 1 and 100
order by
	n