Выборка случайных строк из таблицы

добавлено: 31 дек 10
понравилось:0
просмотров: 2634
комментов: 3

теги:

Автор: Николай Байбородин

Существует несколько способов случайной выборки строк из таблицы. Сегодня я продемонстрирую два из них:

Способ 1: Случайное число строк

DECLARE @n int
SET @n=RAND()*10
SELECT TOP (@n) * FROM sysobjects

rand1

Способ 2: Случайное число строк в случайном порядке

DECLARE @n int
SET @n=RAND()*10
SELECT TOP (@n) * FROM sysobjects
ORDER BY NEWID()

rand2

Второй способ не более замысловат, чем первый, но позволяет сделать выборку более непредсказуемой.


Комментарии


  • а почему непредсказуемость возрастёт?

  • 09 января 2011, 19:08 Николай Байбородин

    Потому что во втором случае непердсказуемо не только количество возвращаемых строк, но и их порядок, из-за использования условия ORDER BY NEWID()

  • а как сделать так, чтобы запрос выдавал не случайное количество строк, а строго определенное? Например, когда нужно только 10 строк



Необходимо войти на сайт, чтобы оставлять комментарии