Случайная запись из таблицы базы данных (T-SQL)

Для больших таблиц вы также random-number-generator можете использовать TABLESAMPLE для sql-server этого, чтобы избежать сканирования tsql всей таблицы.

SELECT  TOP 1 *
FROM YourTable
TABLESAMPLE (1000 ROWS)
ORDER BY NEWID()

ORDER BY NEWID по-прежнему random-numbers требуется, чтобы не возвращать random-numbers только строки, которые появляются random-numbers первыми на странице данных.

Используемое ms-sql-server число необходимо тщательно rng выбирать в соответствии с mssql размером и определением таблицы, и rng вы можете рассмотреть логику ms-sql-server повтора, если строка не возвращается. Математика, лежащая random-sample в основе этого, и почему prng этот метод не подходит для prng небольших таблиц: discussed here

sql-server

tsql

random

2022-09-13T06:16:24+00:00