Как сгенерировать случайное число из 4 цифр - PullRequest
0 голосов
/ 17 декабря 2018

Вот то, что я пробовал до сих пор, но иногда он возвращает 3-значное или 2-значное или даже 1-значное число.

SELECT   num
FROM     GENERATE_SERIES (1, 10000) AS s(num)
order by random()
LIMIT    1

Ответы [ 4 ]

0 голосов
/ 17 декабря 2018

Будет генерироваться значение от 1 до 10000

select to_char(n, 'FM0000') FROM floor(random()*10000) as x(n);
0 голосов
/ 17 декабря 2018

Вы можете попробовать ниже

SELECT   num
FROM     GENERATE_SERIES (1000, 9999) AS s(num)
order by random()
LIMIT    1
0 голосов
/ 17 декабря 2018

Вы можете использовать это выражение, чтобы избежать обработки подзапросов

 select floor(1000 + random() * 8999);   
0 голосов
/ 17 декабря 2018

Вы генерируете все числа от 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...