【问题标题】:Generate random records from the table tblFruit based on the field Type根据字段 Type 从表 tblFruit 生成随机记录
【发布时间】:2020-05-20 00:59:20
【问题描述】:

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

如上表所示。

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

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

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

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

例如

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

非常感谢您的帮助。

【问题讨论】:

  • Sql 服务器。谢谢
  • 什么版本的 SQL SERVER?
  • 我正在使用带有 IIS Express 的 Visual Studio 2017

标签: sql sql-server random generate


【解决方案1】:

我可能会建议:

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

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

【讨论】:

  • @Tairon 。 . .仅当类型多于您尝试返回的行数时才会发生这种情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-02
  • 2011-01-10
  • 2018-01-27
相关资源
最近更新 更多