sql >> Database >  >> RDS >> PostgreSQL

Genereer een willekeurig getal in het bereik 1 - 10

Als je met getallen tussen 1 en 10 een float bedoelt die>=1 en <10 is, dan is het eenvoudig:

select random() * 9 + 1

Dit kan eenvoudig worden getest met:

# select min(i), max(i) from (
    select random() * 9 + 1 as i from generate_series(1,1000000)
) q;
       min       |       max
-----------------+------------------
 1.0000083274208 | 9.99999571684748
(1 row)

Als je gehele getallen wilt, dat zijn>=1 en <10, dan is het simpel:

select trunc(random() * 9 + 1)

En nogmaals, eenvoudige test:

# select min(i), max(i) from (
    select trunc(random() * 9 + 1) as i from generate_series(1,1000000)
) q;
 min | max
-----+-----
   1 |   9
(1 row)


  1. De bewerking is niet geldig voor de status van de transactiefout en het transactiebereik

  2. Voorkomt deze code SQL-injectie?

  3. SQL SELECT AVG

  4. SQL Server-controletabel gepartitioneerd