22 lines
514 B
Text
22 lines
514 B
Text
# PRN in range(0,n)
|
|
create or replace function prn(n) as trunc(random() * n)::BIGINT;
|
|
|
|
# Print numbers in range(0,n) as per the task description
|
|
create or replace function task(n) as table (
|
|
with recursive cte as (
|
|
select prn(n) as rand, false as stop
|
|
union all
|
|
select
|
|
prn(n) as rand,
|
|
rand = 10 as stop
|
|
from cte
|
|
where stop != true
|
|
) select rand
|
|
from cte
|
|
where stop = false
|
|
);
|
|
|
|
.print A sample run:
|
|
from task(20);
|
|
.print A likely shorter one:
|
|
from task(11);
|