MSSQL:selecttop10*from[table]orderbynewid()
ACCESS:
複製代碼代碼如下:
'以利用rs.move嘛
'如隨機取10條
n=10
'先要判斷總記錄數是否少於10,若小於10,則有多少取多少ifn>10rs.recordCountthenn=rs.recordCount
dimranNum
fori=1ton
Randomize()
ranNum=int(rs.recordCount*rnd)+1'產生一個隨機數
rs.MoveranNum'移動游標到隨機數位置
response.writei&"-"&rs("title")&"<br/>"'輸出內容
rs.Move-ranNum
next
'……
這樣就可以了,當然這樣有可能會取到重複的記錄,那麼把產生隨機數那句改下就可以了,聲明一個變量來存放已經產生過的隨機數,在產生新的隨機時先判斷是否已經產生過,若產生過則重新生成就是了,這個就比較簡單了,用instr等就可以搞定了~~
思路是這樣,其它自己動手試試吧。不重複讀取還有個辦法就是只產生一個隨機數,然後挨著讀取這個隨機數後面的N條記錄。當然也要寫好判斷,隨機數要小於總記錄數-要讀取記錄數量。
複製代碼代碼如下:
'……
dimn,ranNum
n=10
Randomize()
ranNum=rs.recordCount-n
ifranNum<1thenranNum=1
ranNum=int(ranNum*rnd)+1
rs.MoveranNum
fori=1to10
response.writei&"-"&rs("title")&"<br/>"'輸出內容
rs.MoveNext'挨著向下讀取
next
'……
建議自己寫個簡單的Function來產生和判斷不重複隨機數。