![]() |
1
3
根据 documentation for TABESAMPLE 你 不应该 如果您“真的想要单个行的样本”,请使用它:
不管怎样,考虑到通过传入@randomnumber(理论上,您发出的前1000个请求可能不会返回任何结果)可以发出的请求数量可能是无限的,最好的方法是限制服务器上的结果集。 |
![]() |
2
2
试试这个:
newid函数将生成唯一标识符值,并且是随机的。 来源: SQL to Select a random row from a database table |
![]() |
3
1
我将使用tablesample,因为它使生成示例数据非常容易。我希望它会更高效,因为您只需要调用一段SQL。 例如
在你的另一个例子中,你必须继续打电话
如果你在单行之后,我会用另一种方法,一些形式的随机前1等… |
![]() |
4
0
我建议读一篇关于 various methods to get random row from table . 它是基于PostgreSQL的,但我相信90%也适用于SQL Server。 当然,通过编写存储过程可以实现最灵活和性能最佳的解决方案。 获得真正随机样本的成本(因此:最佳性能)取决于数据(数据类型、统计和分布,包括稀疏性)。 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 5 月前 |
![]() |
Marc Guillot · 记录值时忽略冲突 6 月前 |
![]() |
Fachry Dzaky · 正确使用ROW_NUMBER 6 月前 |
![]() |
TriumphTruth · 从满足特定条件的数据集中选择1行 6 月前 |