zOs/SQL/RAND
select current timestamp from sysibm.sysdummy1;
with n (n) as
( select 1 from sysibm.sysDummy1
union all select n+1 from n where n < 1e4
),
nc (n, l1, l2, lv2, s1, s2) as
( select n, int(rand(101)*30), int(rand(102)*30),
0, varchar('',1000), varchar('',1000) from n
union all select n, l1, l2, lv2+1, s1 ||
substr('abcdefghijklmnopqrstuvwxyz 0123456789<>.'
|| 'ABCDEFGHIJKLMNOPQRSTUVWXYZ+*%&/()=?\[]{}'
, int(rand(133)*80)+1, 1), s2
from nc
where lv2 < l1 and lv2 <= 1000
union all select n, l1, l2, lv2+1, s1, s2 ||
substr('abcdefghijklmnopqrstuvwxyz 0123456789<>.'
|| 'ABCDEFGHIJKLMNOPQRSTUVWXYZ+*%&/()=?\[]{}'
, int(rand(133)*80)+1, 1)
from nc
where lv2 >= l1 and lv2 < l1+l2 and lv2 <= 1000
)
-- select count(*), sum(len) from nc where lv2 = len
select * from nc where lv2 = l1+l2
order by n
; c
xelect current timestamp from sysibm.sysdummy1;
with n (n) as
( select 1 from sysibm.sysDummy1
union all select n+1 from n where n < 1e5
),
nc (n, len, lv2, str) as
( select n, int(rand(101)*30), 0, varchar('',1000) from n
union all select n, len, lv2+1, str ||
substr('abcdefghijklmnopqrstuvwxyz 0123456789<>.'
|| 'ABCDEFGHIJKLMNOPQRSTUVWXYZ+*%&/()=?\[]{}'
, int(rand(133)*80)+1, 1)
from nc
where lv2 < len and lv2 <= 1000
)
select count(*), sum(len) from nc where lv2 = len
-- order by n
;
select current timestamp from sysibm.sysdummy1;
xelect r, count(r)
with n (lev) as
( select 1 from sysibm.sysDummy1
union all select lev+1 from n1 where lev < 1e5
),
select r, count(r)
from
(
select substr('abcdefghijklmnopqrstuvwxyz 0123456789<>.'
|| 'ABCDEFGHIJKLMNOPQRSTUVWXYZ+"*%&/()=?\[]-'
, int(rand(123)*80)+1, 1) r
from n1
) r
group by r
order by 2
;
xelect substring(int(rand(123)*100) r
from sysibm.syscolumns) r
select r, count(r)
from
( select int(rand(123)*100) r
from sysibm.syscolumns) r
group by r
;
x
select int(rand(123)*99.999+1), rand(123)
from sysibm.systables
fetch first 100 rows only
;
x
select rand(123), rand(), rand(), rand(123)
from sysibm.sysdummy1;
select rand(123), rand(123), rand(123)
from sysibm.systables
fetch first 100 rows only
;
select rand(123), rand(124), rand(125)
from sysibm.systables
fetch first 100 rows only
;