gpt4 book ai didi

sql - 从 SQL Server 获取随机数据但没有重复值

转载 作者:行者123 更新时间:2023-12-02 01:23:30 25 4
gpt4 key购买 nike

我每次都需要从表中随机获取 10 行,但是当我重复查询时,行永远不会重复。

但是如果我得到所有行,它将再次从一个开始重复,比如表有 20 行,第一次我得到 10 随机行,第二次我需要得到剩余的 10 行,在我的第三次查询中我需要得到随机 10 行。

目前我的查询是随机获取 10 行:

SELECT TOP 10 * 
FROM tablename
ORDER BY NEWID()

但是 MSDN 建议这个查询

SELECT TOp 10 * FROM Table1
WHERE (ABS(CAST(
(BINARY_CHECKSUM(*) *
RAND()) as int)) % 100) < 10

为了良好的表现。但是这个查询不返回常量行。你能就此提出一些建议吗

最佳答案

由于您的第二个查询所需的结果取决于第一个查询的(随机)结果,因此查询不能是无状态的。您需要以某种方式将状态(关于先前查询的信息)存储在某处。

最简单的解决方案可能是将已检索的行或它们的 ID 存储在临时表中,然后在第二个查询中查询 ... where id not in (select id from temp_table)

关于sql - 从 SQL Server 获取随机数据但没有重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38588216/

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