sql >> Database teknologi >  >> RDS >> SQLite

Sådan genereres et tilfældigt tal inden for et specificeret område i SQLite

I SQLite kan du bruge random() funktion til at generere et pseudo-tilfældigt tal.

Det er fantastisk, men den returnerede værdi er mellem -9223372036854775808 og +9223372036854775807.

Hvad hvis du har brug for et tilfældigt tal mellem 0 og 10? Eller siger 1 og 100?

Heldigvis kan du gøre dette ved at kombinere random() med abs() og modulo-operatoren.

Tilfældigt tal mellem 0 og 10

Du kan bruge følgende kode til at generere et pseudo-tilfældigt tal mellem 0 og 10.

SELECT abs(random() % 10); 

Her er et eksempel på valg af flere tilfældige værdier.

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

Resultat:

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

Forøg rækkevidden

Selvfølgelig kan du ændre værdien til hvad som helst du vil (forudsat at den er inden for random() række mulige værdier).

Her er det igen med intervallet øget til mellem 0 og 100.

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

Resultat:

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

Tilfældigt tal mellem 1 og 10

Hvis du ikke ønsker, at nul skal være en del af de mulige resultater, kan du bruge følgende metode.

Følgende kode genererer et pseudo-tilfældigt tal mellem 1 og 10.

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

Her er et eksempel på valg af flere tilfældige værdier.

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

Resultat:

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

  1. Trimning af mere transaktionslogfedt

  2. Sådan bestemmes tabellernes størrelse i Oracle

  3. scope_identity vs ident_current

  4. Sådan installeres MariaDB 10 på RHEL 8