jdcrowe

sql fizzbuzz why

Apr 6th, 2018 (edited)
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 0.87 KB | None | 0 0
  1. with [Numbers] as (
  2.     select (ones.n + 10 * tens.n + 100 * hundreds.n) + 1 [Number]
  3.     from (values(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) ones(n)
  4.     cross join (values(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) tens(n)
  5.     cross join (values(0)) hundreds(n)
  6. )
  7. select
  8.     case
  9.         when [Number] % 15 = 0 then 'FizzBuzz'
  10.         when [Number] % 5 = 0 then 'Buzz'
  11.         when [Number] % 3 = 0 then 'Fizz'
  12.         else cast([Number] as varchar(3)) end [FizzBuzz]           
  13. from [Numbers]
  14. order by [Number];
  15.  
  16. /*Another more confusing version with recursive CTE!*/
  17. with [Numbers] as (
  18.     select 1 [Number]
  19.     union all
  20.     select [Number] + 1 [Number]
  21.     from [Numbers]
  22.     where [Number] < 100
  23. )
  24. select
  25.     case
  26.         when [Number] % 15 = 0 then 'FizzBuzz'
  27.         when [Number] % 5 = 0 then 'Buzz'
  28.         when [Number] % 3 = 0 then 'Fizz'
  29.         else cast([Number] as varchar(3)) end [FizzBuzz]           
  30. from [Numbers]
  31. order by [Number];
Add Comment
Please, Sign In to add comment