SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Cách tạo một số ngẫu nhiên trong một phạm vi được chỉ định trong SQLite

Trong SQLite, bạn có thể sử dụng random() hàm tạo một số giả ngẫu nhiên.

Điều này thật tuyệt, nhưng giá trị trả về nằm trong khoảng từ -9223372036854775808 đến +9223372036854775807.

Điều gì sẽ xảy ra nếu bạn cần một số ngẫu nhiên từ 0 đến 10? Hoặc giả sử, 1 và 100?

May mắn thay, bạn có thể làm điều này bằng cách kết hợp random() với abs() và toán tử mô-đun.

Số ngẫu nhiên từ 0 đến 10

Bạn có thể sử dụng mã sau để tạo một số giả ngẫu nhiên từ 0 đến 10.

SELECT abs(random() % 10);

Dưới đây là một ví dụ về việc chọn nhiều giá trị ngẫu nhiên.

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

Kết quả:

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

Tăng phạm vi

Tất nhiên, bạn có thể thay đổi giá trị thành bất kỳ thứ gì bạn muốn (giả sử nó nằm trong random() phạm vi giá trị có thể có).

Đây là một lần nữa với phạm vi được tăng lên từ 0 đến 100.

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

Kết quả:

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

Số ngẫu nhiên từ 1 đến 10

Nếu bạn không muốn con số 0 nằm trong các kết quả có thể xảy ra, bạn có thể sử dụng phương pháp sau.

Đoạn mã sau tạo một số giả ngẫu nhiên từ 1 đến 10.

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

Dưới đây là một ví dụ về việc chọn nhiều giá trị ngẫu nhiên.

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

Kết quả:

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. Làm thế nào để cung cấp cho vị trí 0 của spinner một giá trị nhắc nhở?

  2. sqlite trả về:mã lỗi =1, msg =không có cột như vậy:bếp1

  3. executeSQL () với UPDATE không cập nhật

  4. Chỉ mục dựa trên biểu thức SQLite

  5. SQLite Python