sql >> Databáze >  >> RDS >> PostgreSQL

Vygenerujte náhodné číslo v rozsahu 1-10

Pokud pod čísly mezi 1 a 10 máte na mysli jakýkoli float, který je>=1 a <10, pak je to snadné:

select random() * 9 + 1

To lze snadno otestovat pomocí:

# 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)

Pokud chcete celá čísla, která jsou>=1 a <10, pak je to jednoduché:

select trunc(random() * 9 + 1)

A opět jednoduchý 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. Vrátí GETUTCDATE() stejnou hodnotu, pokud se použije dvakrát ve stejném příkazu?

  2. MySQL ekvivalent funkce DECODE v Oracle

  3. Jak nastavit a přihlásit se jako uživatel root v MySQL

  4. Použijte DB_ID() k vrácení ID databáze na SQL Server