gpt4 book ai didi

c# - 是否有用于显示伪随机数据库记录的 SQL Server 函数?

转载 作者:太空狗 更新时间:2023-10-30 00:58:15 24 4
gpt4 key购买 nike

有没有办法从数据库表中显示一定数量的随机记录,但受创建日期和时间的影响很大。

例如:

  • 随机显示 10 条记录,但是
  • 以比最早的频率更高的频率显示最新的

  • 假设 news 表中有 100 个条目

  • 最新(按日期时间)的记录几乎有 100% 的机会被选中
  • 第一个(按日期时间)记录被选中的可能性几乎为 0%
  • 第 50(按日期时间)记录将有 50% 的机会被选中

直接在mssql里面有这种东西吗?或者我可以使用 C# 中的一些函数(最佳实践)?

谢谢

** 编辑:这个标题真的很可怕,我知道。如果您有更具描述性的内容,请进行编辑。谢谢

最佳答案

一个非常简单的方法可能如下所示。或者至少它可以为您提供一个开始的基础。

WITH N AS
(
SELECT id,
headline,
created_date,
POWER(ROW_NUMBER() OVER (ORDER BY created_date ASC),2) * /*row number squared*/
ABS(CAST(CAST(NEWID() AS VARBINARY) AS INT)) AS [Weight] /*Random Number*/
FROM news
)
SELECT TOP 10
id,
headline,
created_date FROM N
ORDER BY [Weight] DESC

关于c# - 是否有用于显示伪随机数据库记录的 SQL Server 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3216811/

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