SQLServer隨機取記錄


SQLServer本身並沒有提供隨機讀取記錄的功能,但我們可以通過一些方法來實現這個目的。本文介紹了其中幾種方法並比較了各自的優劣。

 

方法一:
直接通過Sql語句實現,如:

SELECT TOP 100 * FROM BCUSTOMER_MZN 
SELECT TOP 100 * FROM BCUSTOMER_MZN  ORDER BY NEWID()

這是最簡單的方法,通過調用SqlServer的newid()函數(產生GUID—全局唯一標志符)來產生隨機記錄。
采用這種方法時,需要將表中所有記錄與newid()生成的值進行比較從而進行排序。因此,如果表中的記錄較多,操作會非常緩慢。

 

方法二:

假設表中有一個自增長主鍵,增量為1。這時我們可以這樣處理,取出主鍵的邊界值(最大值和最小值),然后通過一個算法得到介於(包括)兩個邊界之間的隨機值,最后按照這個值取出對應記錄。

 

方法三:

對方法二進行了改進。主要思路是,將表中所有的主鍵值讀進一個數組,從數組中隨機讀出一個值,按照這個值取出對應記錄。


免責聲明!

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



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