SQL Server 快速大數據排序方法


 SQL Server 中雖然有 ORDER BY NewID() 方法,但對於數據量比較大的結果集來說,排序那慢的可不是一星半點。

微軟官方給了一種方案,https://msdn.microsoft.com/en-us/library/cc441928.aspx

示例如下:

SELECT TOP 100 * FROM [01_SubjectiveScoreInfo] WHERE (ABS(CAST((BINARY_CHECKSUM(ID, NEWID()) ) AS INT)) % 100 ) < 1

 但此方法仍我缺陷,即無法對所有記錄進行排序,上例中如果總記錄數小於10000,TOP 100 返回的記錄數就會不足100 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM