【发布时间】:2011-08-29 13:28:13
【问题描述】:
我的数据库在“类别”表中有 5 个类别。 我还有一个名为“items”的表,其中每个项目都有唯一的 Id 和一个类别 Id FK。
我需要从 1 个类别中随机选择 10 个项目。
如果只有 1 个类别,这不会有问题。但是表“items”以非顺序存储类别ID。
下面的随机选择语句有效并且能够在一个范围内生成随机 ID。但是如何生成 10 个属于同一类别的随机 ID?
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)
【问题讨论】:
-
SELECT TOP 10 * FROM dbo.MyTable ORDER BY NEWID();总是适合我。
标签: sql sql-server tsql