一尘不染

随机排序查询访问

sql

我正在使用这个简单的查询来对ms-access数据库使用随机排序:

SELECT pk FROM TABLE ORDER BY Rnd(pk) asc

当我使用Microsoft Access 2010测试它时,它工作正常

但是,当我使用经典asp调用此查询时,随机排序不起作用。

这是我的代码:

set Rs = Server.CreateObject("ADODB.Recordset")
Rs.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/dbfolder") & "\dbname.mdb"

Rs.Source = "SELECT pk FROM TABLE ORDER BY Rnd(pk) asc"
Rs.CursorType = 3
Rs.CursorLocation = 2
Rs.LockType = 3
Rs.Open()

do while not Rs.eof
    'do stuff
    Rs.Movenext
loop

阅读 162

收藏
2021-03-10

共1个答案

一尘不染

您只需要对随机生成器“加盐”即可:

Rs.Source = "SELECT pk FROM TABLE ORDER BY Rnd(-Timer() * [pk]) Asc"
2021-03-10