SQLite
 sql >> Baza danych >  >> RDS >> SQLite

Jak wygenerować liczbę losową w określonym zakresie w SQLite?

W SQLite możesz użyć random() funkcja do generowania liczby pseudolosowej.

To świetnie, ale zwracana wartość mieści się w zakresie od -9223372036854775808 do +9223372036854775807.

A jeśli potrzebujesz losowej liczby od 0 do 10? A może powiedzmy 1 i 100?

Na szczęście możesz to zrobić, łącząc random() z abs() i operator modulo.

Liczba losowa od 0 do 10

Możesz użyć poniższego kodu, aby wygenerować pseudolosową liczbę od 0 do 10.

SELECT abs(random() % 10);

Oto przykład wyboru wielu losowych wartości.

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

Wynik:

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

Zwiększ zasięg

Oczywiście możesz zmienić wartość na jakąkolwiek chcesz (zakładając, że znajduje się ona w random() zakres możliwych wartości).

Oto znowu z zasięgiem zwiększonym do od 0 do 100.

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

Wynik:

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

Liczba losowa od 1 do 10

Jeśli nie chcesz, aby zero było częścią możliwych wyników, możesz użyć następującej metody.

Poniższy kod generuje pseudolosową liczbę od 1 do 10.

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

Oto przykład wyboru wielu losowych wartości.

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

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Emulacja SQLite FULL OUTER JOIN

  2. Jak przechowywać i pobierać tablicę bajtów (dane obrazu) do iz bazy danych SQLite?

  3. Baza danych nie zostanie usunięta po odinstalowaniu aplikacji na Androida

  4. Funkcje agregujące SQLite

  5. Najlepsza praktyka wdrażania bezpiecznej bazy danych dla urządzenia z systemem Android