SQL: Обертка на RAND()

В SQL есть функция RAND() которая может генерировать псевдослучайные числа.  Например такой запрос:

Вернет:

rand

Дальше можно немного модифицировать выборку. Скажем, нам нужно, что бы выбиралось целое число от 0 до 100, тогда запрос будет таким:

Ну и если от 10 до 100, то таким:

В языке SQL поддерживаются функции, так почему бы не написать обертку на Rand, которая будет генерировать числа от и до нужных нам границ?

Я попробовал написать такой код:

Всё очевидно, но MSSQL генерирует ошибку:

Недопустимое использование оператора «rand», оказывающего побочное действие, в функции.

Google вернул один результат на этот сайт. Здесь предлогают решение: Создать представление, а потом от него сделать функцию.

Воспользуемся:

 

Использование:

1 Response

Добавить комментарий