在存儲過程中將SQL查詢的結果排序爲隨機順序的最佳方法是什麼?SQL Server Random Sort
回答
這是SO# 19412的副本。下面是我給那裏的答案:
select top 1 * from mytable order by newid()
在SQL Server 2005及以上者,可以使用TABLESAMPLE得到這是重複的隨機樣本:
SELECT FirstName, LastName FROM Contact TABLESAMPLE (1 ROWS) ;
雖然這不是根據其他問題鏈接到最好的答案:http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql – 2012-11-08 20:49:26
這個問題是不是一個完全重複的SO#19412要求從查詢中得到一個隨機行,即使這被標記爲答案,因爲這隻給出1行而不是查詢的結果隨機排序。 – 2015-09-11 17:09:57
select foo from Bar order by newid()
正如您所知,您不能只按ORDER BY RAND(),因爲它只會生成一個值。所以使用一個關鍵的種子值。
SELECT RAND(object_id), object_id, name FROM sys.objects ORDER BY 1
或者使用下面的查詢,它返回一個更好隨機抽樣結果:
SELECT * FROM a_table WHERE 0.01 >= CAST(CHECKSUM(NEWID(), a_column) & 0x7fffffff AS float)/CAST (0x7fffffff AS int)
0.01表示總行數的1%。從SQL 2008聯機叢書
報價:
如果你真的想要的 各行的隨機抽樣,修改查詢到 過濾掉行隨機,而不是使用 TABLESAMPLE。
- 1. Python Random Random
- 2. Mail server sends random emails to different accounts
- 3. Spark SQL Row_number()PartitionBy Sort Desc
- 4. (Random)in Common Lisp Not So Random?
- 5. db.insert add values random?
- 6. random()* random()分佈是怎樣的?
- 7. XMLdocument Sort
- 8. Sort shuffle
- 9. std :: sort
- 10. sort arrayList
- 11. Sort NSmuatbleArray
- 12. Javascript:Bubble Sort
- 13. Pre Sort GridView Items
- 14. SQL Server CE到SQL Server
- 15. SQL Server死鎖(SQL Server 2000)
- 16. SQL Server 2008,SQL Server 2005
- 17. SQL Server 2008到SQL Server 2005
- 18. RANDOM PLAY SOUND OVERLAP
- 19. Solaris dev/random
- 20. PHP:array_rand random值
- 21. Math Random Coin Toss
- 22. ForEach Random Array
- 23. Laravel OrderBy Random
- 24. random cron作業
- 25. C++ Random&Array
- 26. Python - 「random」error
- 27. python random sum quiz
- 28. Android - 由RANDOM()
- 29. setInterval + Random Number
- 30. Spark - Random Number Generation
可能重複的[如何在SQL中請求隨機行?](http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql) – exhuma 2014-08-11 13:39:32