No SQLite, você pode usar o
random()
função para gerar um número pseudo-aleatório. Isso é ótimo, mas o valor retornado está entre -9223372036854775808 e +9223372036854775807.
E se você precisar de um número aleatório entre 0 e 10? Ou digamos, 1 e 100?
Felizmente, você pode fazer isso combinando
random()
com abs()
e o operador módulo. Número aleatório entre 0 e 10
Você pode usar o código a seguir para gerar um número pseudo-aleatório entre 0 e 10.
SELECT abs(random() % 10);
Aqui está um exemplo de seleção de vários valores aleatórios.
SELECT
abs(random() % 10) AS R1,
abs(random() % 10) AS R2,
abs(random() % 10) AS R3;
Resultado:
R1 R2 R3 ---------- ---------- ---------- 2 8 5
Aumente o intervalo
Claro, você pode alterar o valor para o que quiser (supondo que esteja dentro do
random()
faixa de valores possíveis). Aqui está novamente com o intervalo aumentado para entre 0 e 100.
SELECT
abs(random() % 100) AS R1,
abs(random() % 100) AS R2,
abs(random() % 100) AS R3;
Resultado:
R1 R2 R3 ---------- ---------- ---------- 76 60 85
Número aleatório entre 1 e 10
Se você não quiser que zero faça parte dos resultados possíveis, você pode usar o seguinte método.
O código a seguir gera um número pseudo-aleatório entre 1 e 10.
SELECT abs(random()) % (10 - 1) + 1;
Aqui está um exemplo de seleção de vários valores aleatórios.
SELECT
abs(random()) % (10 - 1) + 1 AS R1,
abs(random()) % (10 - 1) + 1 AS R2,
abs(random()) % (10 - 1) + 1 AS R3;
Resultado:
R1 R2 R3 ---------- ---------- ---------- 2 1 8