在存储过程中将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. (Random)in Common Lisp Not So Random?
- 2. db.insert add values random?
- 3. Solaris dev/random
- 4. Random Picture Shorten
- 5. Boost Random和OpenMP
- 6. IO.File.Delete Random UnauthorizedAccessException
- 7. C++ Random&Array
- 8. random cron作业
- 9. Laravel OrderBy Random
- 10. Python - “random”error
- 11. Random margin-right
- 12. Sort shuffle
- 13. Javascript:Bubble Sort
- 14. php mysql random rows no duplicates
- 15. SQL Server 2008,SQL Server 2005
- 16. SQL Server 2008到SQL Server 2005
- 17. SQL Server死锁(SQL Server 2000)
- 18. sort asc desc php,mysql
- 19. Genereating Random Number方法
- 20. /dev/random的用法
- 21. PHP Ajax $ _POST empty random
- 22. Rails 3 - Distinct and Random
- 23. C#Random类错误
- 24. 使用node.js获取RANDOM ID es查询
- 25. HowTo sort std :: map?
- 26. Java&Merge Sort
- 27. Bubble Sort 2D Array
- 28. CUSTOM SORT XSL?
- 29. Swift 3 sort jsonArray
- 30. DAG和Top Sort
可能重复的[如何在SQL中请求随机行?](http://stackoverflow.com/questions/19412/how-to-request-a-random-row-in-sql) – exhuma 2014-08-11 13:39:32