这是我到目前为止尝试过的内容,但有时会返回3位或2位甚至1位数字。
SELECT num
FROM GENERATE_SERIES (1, 10000) AS s(num)
order by random()
LIMIT 1
答案 0 :(得分:3)
您可以使用此表达式来避免处理子查询
select floor(1000 + random() * 8999);
答案 1 :(得分:2)
您会生成1到10000之间的所有数字,因此1-999和10000不是4位数字,而是列表中的数字:
SELECT num
FROM GENERATE_SERIES (1000, 9999) AS s(num) // generates 4 digit numbers
order by random()
LIMIT 1
答案 2 :(得分:1)
您可以在下面尝试
SELECT num
FROM GENERATE_SERIES (1000, 9999) AS s(num)
order by random()
LIMIT 1
答案 3 :(得分:0)
它将产生1到10000之间的值
select to_char(n, 'FM0000') FROM floor(random()*10000) as x(n);