同桌上课用手指进去了好爽_欧美丰满熟妇xxⅹⅹ性大i_成人av天天日天天拍拍_猛男gay帅男gay男男同志_欧美va天堂在线观看_人妻无码av中文系列三里桃花_亚欧免费无码在线观看_久久久精品国产亚洲av水_日韩在线免费看污污污_2021无码专区人妻系列日韩

首頁 優(yōu)化推廣 如何隨機(jī)選取n條記錄或者對(duì)記錄作隨機(jī)排序?

如何隨機(jī)選取n條記錄或者對(duì)記錄作隨機(jī)排序?

來源: | 時(shí)間:2010/12/13 15:56:21 |

這里是從SQL Server: 中取隨機(jī)記錄

Q. 如何得到隨機(jī)排序結(jié)果?

A. 要得到隨機(jī)排序的列,或者返回x條隨機(jī)選擇的列,你可以使用隨機(jī)數(shù)。但是RAND函數(shù)在
一個(gè)查詢中只能返回一個(gè)結(jié)果。你可以在NOWID函數(shù)返回的列上做ORDER BY。請(qǐng)看示例:

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

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

這段話翻譯得真是費(fèi)勁,干脆不管原文,直接意譯了。
不過提醒大家注意,這種方法是要對(duì)整個(gè)表掃描,然后產(chǎn)生一個(gè)計(jì)算列再排序的,最好不要
對(duì)大的表作這樣的操作,否則會(huì)很慢的。

 

這里是從 Access 中取隨機(jī)記錄:

<%

cn為connection對(duì)象
rs為recordset對(duì)象
recordCount為記錄總數(shù)
i代表記錄數(shù)
j代表重試次數(shù),防止進(jìn)入死循環(huán)
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
%>
當(dāng)記錄數(shù)相對(duì)于所取記錄數(shù)比較小時(shí),易出現(xiàn)重復(fù)取某一記錄,要克服這一點(diǎn)就得再加幾句了...

服務(wù)熱線

153 8323 9821

功能和特性

價(jià)格和優(yōu)惠

網(wǎng)站和維護(hù)

推廣和優(yōu)化

微信服務(wù)號(hào)