大家也許對(duì)MS SQL的隨機(jī)函數(shù)NEWID應(yīng)該不會(huì)陌生吧,昨天同事問我在LINQ中怎么實(shí)現(xiàn)隨機(jī)數(shù)查詢,我不加思索的回答,那你是不是要用.NET的RANDOM()函數(shù)生成對(duì)應(yīng)的選擇條件,然后進(jìn)行查詢,后來(lái)她告訴我,她有在網(wǎng)絡(luò)上SEARCH,只是自己不知道怎么用,后來(lái)我看看,網(wǎng)絡(luò)上那個(gè)代碼,那個(gè)注釋,勉強(qiáng)還算是懂了吧,不過(guò)自己把自己的心得和體會(huì)寫出來(lái),各位俠客、高手、忍者,千萬(wàn)別拋磚頭砸我,小弟我是自學(xué),HEHE,不過(guò)我也希望各位在這里指出我的不足,至少討論中可以學(xué)到很多東西,新的技術(shù)和想法也是在彼此的討論中得到提升了,歡飲各位討論,留言,發(fā)表評(píng)論。
題外話:總覺得繁體字博大精深,不過(guò)為了自己和他人看起來(lái)比較舒服,我還是使用簡(jiǎn)體吧。
上圖是基于在SQL Server 2005 而生成的
1.先聊聊NEWID():
newid()是MS SQL SERVER產(chǎn)品自己增加的一個(gè)功能函數(shù),目的是用于返回隨機(jī)生成的uniqueidentity值,見圖中的1位置,就知道有一個(gè)返回參數(shù)。看見上圖,各位朋友請(qǐng)你千萬(wàn)注意,別以為@NONE是一個(gè)輸入?yún)?shù),其實(shí)在這里就相當(dāng)于一個(gè)占位符吧,不起作用,只是表示NEWID()沒用傳入?yún)?shù),NONE英文大家都知道就是無(wú),沒有的意思。
不信可以進(jìn)行驗(yàn)證:
code sample:
select top 2*from Customers order by newid(4)
紅色部分:帶了一個(gè)參數(shù)
此時(shí)MSSQL會(huì)提示錯(cuò)誤:
信息:The newid function requires 0 argument(s).
中文意思:newid函數(shù)需要0個(gè)參數(shù),言外之意就是沒參數(shù)。
2.再聊聊怎么使用NEWID()函數(shù)
在MSSQL 的查詢分析器,或者SQL腳本編輯區(qū),輸入以下SQL語(yǔ)句
其實(shí)在1中就已經(jīng)隱約的看出來(lái)怎么使用newid function,
代碼還是COPY一次吧:
select top 2*from Customers order by newid()--可以見圖中2的欄位
3. 進(jìn)行多次EXCUTE SQL命令,
你會(huì)發(fā)現(xiàn)每次執(zhí)行后的2條數(shù)據(jù)都是隨機(jī)的,基本上都是不一樣的結(jié)果。
關(guān)于在MS SQL中怎么使用NEWID()先說(shuō)到這里。
出處:http://www.cnblogs.com/wanzegui325/