日期:2014-05-18  浏览次数:20454 次

如何从mssql随机取出一条记录,看似很简单的问题
不要用newid() 这种方式,扫描全表,我的表大,很慢。

用这种方式:
SELECT TOP 10 *
FROM TB1
WHERE (id > CAST(FLOOR(RAND() *
  (SELECT COUNT(id)
  FROM [TB1])) AS int))

效果不行,如果两次查询间隔很近,查询的结果十之八九是相同的,

还有什么好办法吗?要兼顾执行效率。



------解决方案--------------------
newid(),rand()都可以,根据实际情况选择