科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道SQL Server中使用NewID()产生随机集(2)

SQL Server中使用NewID()产生随机集(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

我们团队最近为旅行包组织完成了一个项目,因为这个项目,我们受到了很多客户热情洋溢的感谢信和E-mail。我们将这些赞扬保存在一个称之为Kudos的荣誉表中。

作者:Arthur Fuller 来源:Builder.com 2007年9月14日

关键字: NewID() SQL Server SQL Server 各版本 数据库

  • 评论
  • 分享微博
  • 分享邮件

select top 10

rand(productid) as row, productid, productname

from Products

order by row

返回的结果见Listing B.

不论这个命令运行多少次,虽然随机指派的行返回唯一的值,但是我们的得到的productids数字是10进制的。这个方法还没有起作用。

但是,这里提供了另外一个更有用的函数:NewID(),它返回一个GUID(全局唯一标志符)。我们看看Rand()函数被NewID()函数代替后的结果怎么样:

select top 10

newid() as row, productid, productname

from Products

order by row

运行的结果与Listing C中的结果很相似。

你的结果有点不同,因为NewID()在每一次调用的时候都产生一个GUID,因此,如果将上面的命令运行2到3次,得到的结果是不同的。

这个方法是调用NewID()的值作为一列,然后通过NewID()排列这些值。此方法很简单,并且可以应用到不同的场合。例如:你可能需要创建一些有某种特性的产品的列表或随机挑选10个客户或者100个随机挑选出来的订单的详细资料等。

SQL Server不是设计用于产生随机集的,但是其设计是基于数学而非商学的。幸亏有NewID()函数,我们才能够毫不费力地产生随机数据集。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章