SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Cara Menghasilkan Angka Acak dalam Rentang Tertentu di SQLite

Di SQLite, Anda dapat menggunakan random() berfungsi untuk menghasilkan bilangan pseudo-acak.

Ini bagus, tetapi nilai yang dikembalikan adalah antara -9223372036854775808 dan +9223372036854775807.

Bagaimana jika Anda membutuhkan nomor acak antara 0 dan 10? Atau katakan, 1 dan 100?

Untungnya Anda dapat melakukan ini dengan menggabungkan random() dengan abs() dan operator modulo.

Angka Acak Antara 0 dan 10

Anda dapat menggunakan kode berikut untuk menghasilkan angka pseudo-acak antara 0 dan 10.

SELECT abs(random() % 10);

Berikut ini contoh pemilihan beberapa nilai acak.

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

Hasil:

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

Meningkatkan Jangkauan

Tentu saja, Anda dapat mengubah nilainya menjadi apa pun yang Anda inginkan (dengan asumsi nilai tersebut berada di dalam random() rentang nilai yang mungkin).

Ini dia lagi dengan rentang yang ditingkatkan menjadi antara 0 dan 100.

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

Hasil:

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

Angka Acak Antara 1 dan 10

Jika Anda tidak ingin nol menjadi bagian dari kemungkinan hasil, Anda dapat menggunakan metode berikut.

Kode berikut menghasilkan angka pseudo-acak antara 1 dan 10.

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

Berikut ini contoh pemilihan beberapa nilai acak.

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

Hasil:

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. Apa tujuan peta proyeksi Android di penyedia konten?

  2. Bagaimana cara memilih kolom tertentu dari database kamar yang diberikan parameter tertentu dalam kueri kamar?

  3. Mengapa durasi NULL untuk acara berulang di android?

  4. Ketidakcocokan tipe data (kode 20) saat memasukkan

  5. Bagaimana SQLite Count() Bekerja