扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者: Arthur Fuller 来源:Builder.com 2007年9月14日
我们团队最近为旅行包组织完成了一个项目,因为这个项目,我们受到了很多客户热情洋溢的感谢信和E-mail。我们将这些赞扬保存在一个称之为Kudos的荣誉表中。
在网站设计阶段,我们决定利用Kudos表在网站上显示客户的反馈信息。而显示的时候只需要10条记录,但是我们不希望只能显示那固定的几条反馈信息,因为它有些恼人并且需要维护。所以我们选择随机方法挑出10条记录。将在下面给你讲解在SQL Server中如何产生随机集。
因为你没有这个名叫Kudos的表,那我们就选用SQL Server有的Northwind表作为示例。很明显T-SQL函数不能满足这个要求:
useNorthwind
select rand(), productid, productname from Products
这个方法的问题在于Rand()函数在给定命令里所有行都返回相同的值,见Listing A。
你可能不需要得到这样的结果,则可以给rand()函数提供一个种子值。在下面的代码中,我们在Rand()函数中给定每一行的productid作为种子值。
select top 10
rand(productid) as row, productid, productname
from Products
order by row
返回的结果见Listing B.
不论这个命令运行多少次,虽然随机指派的行返回唯一的值,但是我们的得到的productids数字是10进制的。这个方法还没有起作用。 |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者