生成3个随机数

时间:2018-02-15 07:07:42

标签: sqlite

我正在尝试使用WITH运算符生成三个随机数。

 WITH loop(n) AS (
   SELECT 1
   UNION ALL
   SELECT CAST(ABS(RANDOM() % 1E2) AS INTEGER) FROM loop
   LIMIT 3
 )
 SELECT group_concat(n) FROM loop;

但每当我的代码返回1, 81, 631, 9, 28之类的内容时,换句话说,序列中的第一个数字不是随机的。似乎我的问题已在SELECT运算符中介绍,但目前我还不知道如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

启动CTE的数字1在选择中是硬编码的,这解释了为什么你的三个数字总是从1开始。尝试使种子选择也是一个随机数:

WITH loop(n) AS (
    SELECT CAST(ABS(RANDOM() % 1E2) AS INTEGER)
    UNION ALL
    SELECT CAST(ABS(RANDOM() % 1E2) AS INTEGER) FROM loop
    LIMIT 3
)

SELECT group_concat(n) FROM loop;