带选择标准的TSQL随机选择
我的数据库在表“category”中有5个类别。 我还有一个名为“items”的表,其中每个项都有唯一的Id和类别Id FK 我需要从一个类别中随机选择10个项目 如果只有一个类别,这就不会是问题。但表“items”以非顺序顺序存储类别id 下面的随机选择语句可以工作,并且能够在一定范围内生成随机ID。但是如何生成10个属于同一类别的随机ID呢带选择标准的TSQL随机选择,sql,sql-server,tsql,Sql,Sql Server,Tsql,我的数据库在表“category”中有5个类别。 我还有一个名为“items”的表,其中每个项都有唯一的Id和类别Id FK 我需要从一个类别中随机选择10个项目 如果只有一个类别,这就不会是问题。但表“items”以非顺序顺序存储类别id 下面的随机选择语句可以工作,并且能够在一定范围内生成随机ID。但是如何生成10个属于同一类别的随机ID呢 Declare @maxRandomValue tinyint = 100 , @minRandomValue tinyint = 0; Se
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件
查看
从dbo.MyTable ORDER BY NEWID()中选择前10个*代码>总是适合我。
select top 10 * from items where categoryid = 1 order by newid()
SELECT TOP 10
*
FROM
Items
WHERE
CategoryID = @whatever
ORDER BY
NEWID()