Решение: использовать функцию NEWID(), которая генерирует случайный GUID:
SELECT TOP(@N) * FROM MyTable ORDER BY NEWID()
где @N - параметр, количество записей.
Приведённый выше запрос с помощью NEWID() генерирует случайный GUID (строку вроде "686c1b0f-4bae-4c58-8a19-01904a67c3d8") для каждой записи таблицы, затем сортирует результат по этим GUID и выбирает первые N записей.
1 комментарий:
такой способ только для маленького количества строк и для редких обращений к таблице, т.к. быстродействие явно оставляет желать лучшего...
Отправить комментарий