1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-13 12:08:02 +00:00
Files
til/postgres/fizzbuzz-with-common-table-expressions.md

24 lines
632 B
Markdown

# Fizzbuzz With Common Table Expressions
In learning about CTEs (common table expressions) in postgres, I discovered
that you can do some interesting and powerful things using the `with
recursive` construct. The following solves the fizzbuzz problem for integers
up to 100
```sql
with recursive fizzbuzz (num,val) as (
select 0, ''
union
select (num + 1),
case
when (num + 1) % 15 = 0 then 'fizzbuzz'
when (num + 1) % 5 = 0 then 'buzz'
when (num + 1) % 3 = 0 then 'fizz'
else (num + 1)::text
end
from fizzbuzz
where num < 100
)
select val from fizzbuzz where num > 0;
```