TSQL Random Select с выборочными критериями

Моя база данных имеет 5 категорий в таблице «категория». У меня также есть таблица под названием «items», где каждый элемент имеет уникальный идентификатор и идентификатор категории FK.

Мне нужно случайным образом выбрать 10 предметов из 1 категории.

Это не было бы проблемой, если бы была только одна категория. Но в «элементах» таблицы хранится категория id в неупорядоченном порядке.

Оператор случайного выбора ниже работает и способен генерировать случайные идентификаторы в пределах диапазона. Но как я могу сгенерировать 10 случайных идентификаторов, относящихся к одной и той же категории?

Declare @maxRandomValue tinyint = 100 , @minRandomValue tinyint = 0; Select Cast(((@maxRandomValue + 1) - @minRandomValue) * Rand() + @minRandomValue As tinyint) As 'randomNumber'; 

ОПРЕДЕЛЕНИЯХ:

 Table Categories ID INT Desc Varchar(100) Table Items ID Int CategoryID Int (fk) Desc Varchar(100) 

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

  • ГДЕ, чтобы отфильтровать категорию
  • NEWID для рандомизации строк
  • TOP, чтобы ограничить вас до 10 предметов

Так:

 SELECT TOP 10 * FROM Items WHERE CategoryID = @whatever ORDER BY NEWID() 
 select top 10 * from items where categoryid = 1 order by newid() 
Interesting Posts

checkListBox selectedindex и sql mapping

SQL-запрос, который находит повторяющиеся данные в одном столбце с разными данными во втором столбце

Как выполнить сравнение без акцентов в SQL Server для кодовой страницы 1250

вставить элемент в n-й элемент в xml на сервере Sql

Не удалось развернуть проект. Для получения дополнительной информации запросите представление operation_messages для идентификатора операции «20132»?

Есть ли способ получить значение столбца на основе номера строки?

разница между созданием индекса с двумя столбцами и созданием отдельного индекса на двух столбцах

Два уровня группировки по одному набору данных. Является ли это возможным

Недопустимый по умолчанию SQL Server GetUTCDate

SQL Server – поиск шаблонов чисел

Как добавить идентификатор в столбец SQL Server?

выберите Топ 3 невыполненных результатов?

sql получить конкретное время на дату

Как получить столбец DISTINCT A, с SUM столбца B?

SQL Server – использование котировального идентификатора ON, OFF и Getdate ()

Давайте будем гением компьютера.