我正在尝试使用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, 63
或1, 9, 28
之类的内容时,换句话说,序列中的第一个数字不是随机的。似乎我的问题已在SELECT
运算符中介绍,但目前我还不知道如何解决这个问题。
答案 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;