генерировать случайное число х цифр в SQL Server 2008 R2 - PullRequest
13 голосов
/ 10 октября 2011

Я должен сгенерировать 12-значный номер (bigint) в SQL Server 2008 R2 его левой.я использовал эти методы, которые я нашел в интернете

convert(numeric(12,0),rand() * 999999999999) 

и

RIGHT(CAST(CAST(NEWID() AS VARBINARY(36)) AS BIGINT), 12)

, в то время как они действительно работают, проблема заключается в том, что иногда сгенерированное число имеет ведущие нули, и оно удаляется, что приводит к10 или 11-значное число.

Существует ли согласованный способ генерирования x-значных чисел в sql?

Спасибо.это очень срочно.

Ответы [ 3 ]

32 голосов
/ 10 октября 2011

Одним из решений является просто убедиться, что он находится в диапазоне 12 цифр.

convert(numeric(12,0),rand() * 899999999999) + 100000000000
4 голосов
/ 10 октября 2011

Как насчет добавления случайного числа к 100000000000

1 голос
/ 29 декабря 2017

Генерация случайных чисел в одной строке в SQL Server

Select LEFT(SUBSTRING (RTRIM(RAND()) + SUBSTRING(RTRIM(RAND()),3,11), 3,11),6) as RandomNumber

Выше запрос даст вам 6-значный случайное число. Если вам нужно более или менее цифровое число, просто измените упоминание длины в конце строки. Ex. (От 6 до 4 или 8 также максимальный предел составляет 11)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...