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
    ;