建站技术

当前位置:

如何随机选取n条记录或者对记录作随机排序?

浏览量:

这里是从SQL Server: 中取随机记录

Q. 如何得到随机排序结果?

A. 要得到随机排序的列,或者返回x条随机选择的列,你可以使用随机数。但是RAND函数在
一个查询中只能返回一个结果。你可以在NOWID函数返回的列上做ORDER BY。请看示例:

SELECT *
FROM Northwind..Orders
ORDER BY NEWID()

SELECT TOP 10 *
FROM Northwind..Orders
ORDER BY NEWID()

这段话翻译得真是费劲,干脆不管原文,直接意译了。
不过提醒大家注意,这种方法是要对整个表扫描,然后产生一个计算列再排序的,最好不要
对大的表作这样的操作,否则会很慢的。

 

这里是从 Access 中取随机记录:

<%

cn为connection对象
rs为recordset对象
recordCount为记录总数
i代表记录数
j代表重试次数,防止进入死循环
dim i,j
randomize()
do while i<8 and j<30
    //8条记录
    sql="select F1,F2 from T1 where id="&rnd()*recordCount\1
    rs.open sql,cn,1,1
    if not (rs.bof and rs.eof) then
        i=i+1
        response.write("....")
    end if
    rs.close
    j=j+1
loop
%>
当记录数相对于所取记录数比较小时,易出现重复取某一记录,要克服这一点就得再加几句了...


[声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【27535611@qq.com】,我们在确认后,会立即删除,保证您的版权。