sql 隨機(jī)抽取幾條數(shù)據(jù)的方法 推薦
更新時(shí)間:2009年06月12日 19:30:21 作者:
前段時(shí)間在做項(xiàng)目的時(shí)刻??偸怯龅竭@樣一個(gè)問題。就是要怎么去讓首頁顯示的內(nèi)容不斷的變化。想了很久。也沒有什么結(jié)果。后面去想了一下。得出以下一個(gè)結(jié)果
傳說用這個(gè)語句管用: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 語句就變成了:
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 語句就變成了:
復(fù)制代碼 代碼如下:
select top 10 *, NewID() as random from 表名 order by random
用這樣的方法就可以得到。我們想要結(jié)果了。不信的話你可以去試試。
相關(guān)文章
SQL Server中的RAND函數(shù)的介紹和區(qū)間隨機(jī)數(shù)值函數(shù)的實(shí)現(xiàn)
這篇文章主要介紹了SQL Server中的RAND函數(shù)的介紹和區(qū)間隨機(jī)數(shù)值函數(shù)的實(shí)現(xiàn) 的相關(guān)資料,需要的朋友可以參考下2015-12-12用SQL語句實(shí)現(xiàn)隨機(jī)查詢數(shù)據(jù)并不顯示錯(cuò)誤數(shù)據(jù)的方法
用SQL語句實(shí)現(xiàn)隨機(jī)查詢數(shù)據(jù)并不顯示錯(cuò)誤數(shù)據(jù)的方法...2007-11-11揭秘SQL Server 2014有哪些新特性(3)-可更新列存儲(chǔ)聚集索引
可更新的列存儲(chǔ)索引作為SQL Server 2014的一個(gè)關(guān)鍵功能之一,在提升數(shù)據(jù)庫的查詢性能方面貢獻(xiàn)非常突出。據(jù)微軟統(tǒng)計(jì),在面向OLAP查詢統(tǒng)計(jì)類系統(tǒng)中,相比其他SQL傳統(tǒng)版本的數(shù)據(jù)庫,報(bào)表查詢的性能最大可提升上十倍。2014-08-08MS-SQL Server 中單引號(hào)的兩種處理方法
MS-SQL Server 中單引號(hào)的兩種處理方法...2007-01-01sql自動(dòng)增長標(biāo)識(shí)導(dǎo)致導(dǎo)入數(shù)據(jù)問題的解決方法
對(duì)于一個(gè)設(shè)了自動(dòng)增長標(biāo)識(shí)的數(shù)據(jù)表來說,它的字段的值是由數(shù)據(jù)庫自動(dòng)設(shè)置的;這在導(dǎo)數(shù)據(jù)時(shí)很麻煩2012-11-11