sql >> Databáze >  >> RDS >> SQLite

Jak vygenerovat náhodné číslo v rámci zadaného rozsahu v SQLite

V SQLite můžete použít random() funkce pro generování pseudonáhodného čísla.

To je skvělé, ale vrácená hodnota je mezi -9223372036854775808 a +9223372036854775807.

Co když potřebujete náhodné číslo mezi 0 a 10? Nebo řekněme 1 a 100?

Naštěstí to můžete udělat kombinací random() pomocí abs() a operátor modulo.

Náhodné číslo mezi 0 a 10

Následující kód můžete použít ke generování pseudonáhodného čísla mezi 0 a 10.

SELECT abs(random() % 10);

Zde je příklad výběru více náhodných hodnot.

SELECT 
  abs(random() % 10) AS R1,
  abs(random() % 10) AS R2,
  abs(random() % 10) AS R3;

Výsledek:

R1          R2          R3        
----------  ----------  ----------
2           8           5         

Zvětšit rozsah

Hodnotu samozřejmě můžete změnit na cokoli chcete (za předpokladu, že je v rámci random() rozsah možných hodnot).

Zde je to opět s rozsahem zvýšeným na 0 až 100.

SELECT 
  abs(random() % 100) AS R1,
  abs(random() % 100) AS R2,
  abs(random() % 100) AS R3;

Výsledek:

R1          R2          R3        
----------  ----------  ----------
76          60          85        

Náhodné číslo mezi 1 a 10

Pokud nechcete, aby nula byla součástí možných výsledků, můžete použít následující metodu.

Následující kód generuje pseudonáhodné číslo mezi 1 a 10.

SELECT abs(random()) % (10 - 1) + 1;

Zde je příklad výběru více náhodných hodnot.

SELECT 
  abs(random()) % (10 - 1) + 1 AS R1,
  abs(random()) % (10 - 1) + 1 AS R2,
  abs(random()) % (10 - 1) + 1 AS R3;

Výsledek:

R1          R2          R3        
----------  ----------  ----------
2           1           8         

  1. Vytváření nových modulů pomocí PostgreSQL Create Extension

  2. Jak vygenerovat GUID v Oracle?

  3. Jak vypsat tabulky v aktuální databázi pomocí PostgreSQL

  4. Použití sloupce pořadí řazení v databázové tabulce