MS Access SQL, функция Rnd без числового поля - PullRequest
2 голосов
/ 26 января 2012

Возможно ли в запросе Microsoft Access использовать функцию Rnd () без указания числового столбца (например, когда мой первичный ключ содержит буквенные символы) и при этом генерировать другое случайное число для каждой строки?

Ответы [ 2 ]

5 голосов
/ 26 января 2012

Вы можете использовать 1-й символ;

rnd(asc(left([field],1)))

, который должен давать разные результаты для каждой строки, даже если символ совпадает

1 голос
/ 26 января 2012

Это проще, чем я думал, эту функцию можно использовать в том же контексте, что и Rnd ()

Public Function Rand(FieldName) As Single

    Rand = Rnd(1)

End Function

Тогда в SQL используется как:

SELECT ID, Rand([ID]) FROM Table

Передавая ему имя поля, мы заставляем функцию выполняться для каждой строки в запросе (даже если мы игнорируем фактическое поле в функции), а затем вычисление функции до 1 всегда будет возвращать другое случайное число одним и тем же способом. Rnd () будет выполнен в VB.

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