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

