gpt4 book ai didi

sql - TSQL 随机选择与选择标准

转载 作者:行者123 更新时间:2023-12-04 19:13:50 25 4
gpt4 key购买 nike

我的数据库在“类别”表中有 5 个类别。我还有一个名为“项目”的表,其中每个项目都有唯一的 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)

最佳答案

使用

  • 用于过滤类别的 WHERE
  • NEWID 随机化行
  • TOP 将您限制在 10 件以内

所以:

SELECT TOP 10
*
FROM
Items
WHERE
CategoryID = @whatever
ORDER BY
NEWID()

关于sql - TSQL 随机选择与选择标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7230772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com