How to generate numbers between two values

Viewed 95

I want to generate numbers between 2 values, for example 15 numbers between 32 and 35.

I wrote this:

SELECT LEVEL+31 + round(dbms_random.value(1, 4))
FROM   dual CONNECT BY LEVEL <=15;

but it gives me results like this:

 34
 36
 37
 36
 39
 39
 40
 41
 44
 44
 45
 47
 45
 47
 47

I want all 15 values to fall within the range 31 to 35.

1 Answers

Remove LEVEL from SELECT and modify limits in dbms_random.value:

SQL> select round(dbms_random.value(31, 35)) result
  2  from dual
  3  connect by level <= 15;

    RESULT
----------
        32
        31
        34
        32
        34
        31
        33
        32
        33
        32
        34
        34
        35
        33
        33

15 rows selected.

SQL>
Related