Generate Random Integers, Including Negative Numbers

in Vertica Tips
Jim Knicely authored this tip.
The RANDOMINT(n) function returns one of the n integers from 0 through n – 1. Those are all positive integers. What if I want to include negative integers? That’s easy with a simple multiplication.
Example:
dbadmin=> SELECT DECODE(randomint(2), 1, 1, -1) * randomint(11) "Random INT from -10 to 10";
Random INT from -10 to 10
---------------------------
-1
(1 row)
dbadmin=> SELECT DECODE(randomint(2), 1, 1, -1) * randomint(11) "Random INT from -10 to 10";
Random INT from -10 to 10
---------------------------
3
(1 row)
dbadmin=> SELECT DECODE(randomint(2), 1, 1, -1) * randomint(11) "Random INT from -10 to 10";
Random INT from -10 to 10
---------------------------
-7
(1 row)
dbadmin=> SELECT DECODE(randomint(2), 1, 1, -1) * randomint(11) "Random INT from -10 to 10";
Random INT from -10 to 10
---------------------------
9
(1 row)
Have fun!