如何从mssql随机取出一条记录,看似很简单的问题
不要用newid() 这种方式,扫描全表,我的表大,很慢。
用这种方式:
SELECT TOP 10 *
FROM TB1
WHERE (id > CAST(FLOOR(RAND() *
(SELECT COUNT(id)
FROM [TB1])) AS int))
效果不行,如果两次查询间隔很近,查询的结果十之八九是相同的,
还有什么好办法吗?要兼顾执行效率。
------解决方案--------------------
newid(),rand()都可以,根据实际情况选择