sql 隨機(jī)抽取幾條數(shù)據(jù)的方法 推薦
更新時(shí)間:2009年06月12日 19:30:21 作者:
前段時(shí)間在做項(xiàng)目的時(shí)刻。總是遇到這樣一個(gè)問(wèn)題。就是要怎么去讓首頁(yè)顯示的內(nèi)容不斷的變化。想了很久。也沒(méi)有什么結(jié)果。后面去想了一下。得出以下一個(gè)結(jié)果
傳說(shuō)用這個(gè)語(yǔ)句管用:select top 5 * from tablename order by newid()
我放到sql的查詢分析器里去執(zhí)行果然管用,隨機(jī)抽取5條信息,不停的換,結(jié)果我應(yīng)用到程序里的時(shí)候就不管用了,總是那幾條,于是對(duì)這個(gè)東西進(jìn)行了一個(gè)研究得出另一種方法:
newid() 可以產(chǎn)生如:"49869293-8891-4B31-B88E-A584D9621490” 這樣的數(shù)據(jù)結(jié)果,而且每一行產(chǎn)生的都不同,這樣的話,我們就可以在查詢的時(shí)候給結(jié)果集里加上這么一個(gè)列,比如:
select *,newsid() from 表名
然后我們?cè)诮o這個(gè)結(jié)果集排序,因?yàn)槊看蝞ewid()所產(chǎn)生的值都不同,所以如果排序的話,每次當(dāng)然也都不一樣,這樣我們就可以隨機(jī)挑選幾條數(shù)據(jù)了,那我們?cè)趶那懊婕由弦粋€(gè)top 語(yǔ)句就變成了:
select top 10 *, NewID() as random from 表名 order by random
用這樣的方法就可以得到。我們想要結(jié)果了。不信的話你可以去試試。
我放到sql的查詢分析器里去執(zhí)行果然管用,隨機(jī)抽取5條信息,不停的換,結(jié)果我應(yīng)用到程序里的時(shí)候就不管用了,總是那幾條,于是對(duì)這個(gè)東西進(jìn)行了一個(gè)研究得出另一種方法:
newid() 可以產(chǎn)生如:"49869293-8891-4B31-B88E-A584D9621490” 這樣的數(shù)據(jù)結(jié)果,而且每一行產(chǎn)生的都不同,這樣的話,我們就可以在查詢的時(shí)候給結(jié)果集里加上這么一個(gè)列,比如:
select *,newsid() from 表名
然后我們?cè)诮o這個(gè)結(jié)果集排序,因?yàn)槊看蝞ewid()所產(chǎn)生的值都不同,所以如果排序的話,每次當(dāng)然也都不一樣,這樣我們就可以隨機(jī)挑選幾條數(shù)據(jù)了,那我們?cè)趶那懊婕由弦粋€(gè)top 語(yǔ)句就變成了:
復(fù)制代碼 代碼如下:
select top 10 *, NewID() as random from 表名 order by random
用這樣的方法就可以得到。我們想要結(jié)果了。不信的話你可以去試試。
相關(guān)文章
SqlServer批量備份多個(gè)數(shù)據(jù)庫(kù)且刪除3天前的備份
這篇文章主要介紹了SqlServer批量備份多個(gè)數(shù)據(jù)庫(kù)且刪除3天前的備份,需要的朋友可以參考下2017-09-09
sqlserver 存儲(chǔ)過(guò)程分頁(yè)(按多條件排序)
sqlserver 存儲(chǔ)過(guò)程分頁(yè),并支持條件排序,需要的朋友可以參考下。2010-06-06
必須會(huì)的SQL語(yǔ)句(六) 數(shù)據(jù)查詢
這篇文章主要介紹了sqlserver中數(shù)據(jù)查詢方法,需要的朋友可以參考下2015-01-01
Sql Server 分組統(tǒng)計(jì)并合計(jì)總數(shù)及WITH ROLLUP應(yīng)用
WITH ROLLUP 在生成包含小計(jì)和合計(jì)的報(bào)表時(shí),ROLLUP 運(yùn)算符很有用,ROLLUP 運(yùn)算符生成的結(jié)果集類似于 CUBE 運(yùn)算符所生成的結(jié)果集,接下來(lái)介紹Sql Server 分組統(tǒng)計(jì)并合計(jì)總數(shù)實(shí)現(xiàn)代碼,感興趣的朋友可以了解下哦2013-01-01

