大家也許對MS SQL的隨機函數NEWID應該不會陌生吧,昨天同事問我在LINQ中怎么實現隨機數查詢,我不加思索的回答,那你是不是要用.NET的RANDOM()函數生成對應的選擇條件,然后進行查詢,后來她告訴我,她有在網絡上SEARCH,只是自己不知道怎么用,后來我看看,網絡上那個代碼,那個注釋,勉強還算是懂了吧,不過自己把自己的心得和體會寫出來,各位俠客、高手、忍者,千萬別拋磚頭砸我,小弟我是自學,HEHE,不過我也希望各位在這里指出我的不足,至少討論中可以學到很多東西,新的技術和想法也是在彼此的討論中得到提升了,歡飲各位討論,留言,發表評論。
--題外話:总觉得繁体字博大精深,不过为了自己和他人看起来比较舒服,我还是使用简体吧。
上图是基于在SQL Server 2005 而生成的
1.先聊聊NEWID():
newid()是MS SQL SERVER产品自己增加的一个功能函数,目的是用于返回随机生成的uniqueidentity值,见图中的1位置,就知道有一个返回参数。看见上图,各位朋友请你千万注意,别以为@NONE是一个输入参数,其实在这里就相当于一个占位符吧,不起作用,只是表示NEWID()没用传入参数,NONE英文大家都知道就是无,没有的意思。
不信可以进行验证:
code sample:
select top 2*from Customers order by newid(4)
红色部分:带了一个参数
此时MSSQL会提示错误:
信息:The newid function requires 0 argument(s).
中文意思:newid函数需要0个参数,言外之意就是没参数。
2.再聊聊怎么使用NEWID()函数
在MSSQL 的查询分析器,或者SQL脚本编辑区,输入以下SQL语句
其实在1中就已经隐约的看出来怎么使用newid function,
代码还是COPY一次吧:
select top 2*from Customers order by newid()--可以见图中2的栏位
3. 进行多次EXCUTE SQL命令,
你会发现每次执行后的2条数据都是随机的,基本上都是不一样的结果。
关于在MS SQL中怎么使用NEWID()先说到这里。
下一篇随笔我会讨论一下在LINQ中怎么使用NEWID()