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中文網其他相關文章!