最近一个项目ASP程序,需要从sqlserver数据库中随机提取10条记录,要求这10条记录不重复。
在sqlserver中,很简单就能实现,因为sqlserver支持newid()随机排序。
select top 10 * from [table] order by newid()
SQL Server中newid()生成的guid具有唯一性。
GUID的生成过程会参考当前时间,当前的硬件以及一些随机数,来保证任何时间内任何机器都不会产生同样的GUID。
order by newid()随机选取记录是如何进行的?
newid()在扫描每条记录的时候都生成一个值, 而生成的值是随机的, 没有大小写顺序. 所以最终结果再按这个排序, 排序的结果当然就是无序的了。
以上就是asp下从sqlserver提取不重复随机数据的方法。
声明:如需转载,请注明来源于www.webym.net并保留原文链接:http://www.webym.net/jiaocheng/243.html