SQL Server 中简化的随机行选择:一种简化的方法
SQL Server 用户经常需要从表中随机选择行样本。 寻找一种干净、有效的方法来解决这个问题历来都是有问题的。本文提出了一个简化的解决方案。
之前的尝试经常涉及复杂的临时表和迭代过程。虽然 NEWID()
函数具有潜力,但事实证明可靠地选择精确的百分比很困难。
这是一个简洁高效的解决方案:
<code class="language-sql">SELECT TOP 10 PERCENT * FROM [yourtable] ORDER BY NEWID()</code>
此查询使用 ORDER BY NEWID()
随机打乱行。 TOP 10 PERCENT
然后选择这些打乱的行中的前 10%。
对于非常大的表,建议采用性能优化的方法:
<code class="language-sql">SELECT * FROM [yourtable] WHERE [yourPk] IN (SELECT TOP 10 PERCENT [yourPk] FROM [yourtable] ORDER BY NEWID())</code>
此方法首先使用子查询选择主键值的随机样本。然后,主查询仅检索与这些键对应的行。这显着减少了扫描的数据,从而提高了性能。
这些技术提供了一种在 SQL Server 中执行随机行选择的简单而有效的方法,解决了以前复杂的问题。
以上是如何在 SQL Server 中有效地选择随机百分比的行?的详细内容。更多信息请关注PHP中文网其他相关文章!