In SQLite, puoi usare random()
funzione per generare un numero pseudo-casuale.
Ottimo, ma il valore restituito è compreso tra -9223372036854775808 e +9223372036854775807.
E se avessi bisogno di un numero casuale compreso tra 0 e 10? O dire, 1 e 100?
Fortunatamente puoi farlo combinando random()
con abs()
e l'operatore modulo.
Numero casuale compreso tra 0 e 10
Puoi utilizzare il codice seguente per generare un numero pseudo-casuale compreso tra 0 e 10.
SELECT abs(random() % 10);
Ecco un esempio di selezione di più valori casuali.
SELECT
abs(random() % 10) AS R1,
abs(random() % 10) AS R2,
abs(random() % 10) AS R3;
Risultato:
R1 R2 R3 ---------- ---------- ---------- 2 8 5
Aumenta la portata
Naturalmente, puoi cambiare il valore in qualsiasi cosa tu voglia (supponendo che sia all'interno di random()
gamma di valori possibili).
Eccolo di nuovo con l'intervallo aumentato tra 0 e 100.
SELECT
abs(random() % 100) AS R1,
abs(random() % 100) AS R2,
abs(random() % 100) AS R3;
Risultato:
R1 R2 R3 ---------- ---------- ---------- 76 60 85
Numero casuale compreso tra 1 e 10
Se non vuoi che zero faccia parte dei possibili risultati, puoi utilizzare il metodo seguente.
Il codice seguente genera un numero pseudocasuale compreso tra 1 e 10.
SELECT abs(random()) % (10 - 1) + 1;
Ecco un esempio di selezione di più valori casuali.
SELECT
abs(random()) % (10 - 1) + 1 AS R1,
abs(random()) % (10 - 1) + 1 AS R2,
abs(random()) % (10 - 1) + 1 AS R3;
Risultato:
R1 R2 R3 ---------- ---------- ---------- 2 1 8