首页 > 解决方案 > 根据字段 Type 从表 tblFruit 生成随机记录

问题描述

我将需要您的帮助以根据字段类型从表 tblFruit 生成随机记录(不重复)

表:tblFruit

根据上表。

有4种水果编号1,2,3,4

我想从表 tblFruit 动态生成 x 记录(例如 7 条记录)。假设我需要获得 7 个随机记录的水果。

我的结果应该包含不同类型的水果。但是,我们需要确保结果只包含 7 条记录。

即类型1的2条记录,类型2的2条记录,类型3的2条记录,类型4的1条记录

例如

我的结果

注意:如果我想生成 10 条记录(不重复),那么我将获得每种类型的 2 条记录,其余两条随机任何类型的记录。

非常感谢您的帮助。

标签: sqlsql-serverrandomgenerate

解决方案


我可能会建议:

select top (7) f.*
from tblfruit f
order by row_number() over (partition by type order by newid());

这实际上会产生每种类型的行数大致相同的结果(好吧,减 1),但这满足您的需求。


推荐阅读