zoukankan      html  css  js  c++  java
  • SQLServer随机取记录

    SQLServer本身并没有提供随机读取记录的功能,但我们可以通过一些方法来实现这个目的。本文介绍了其中几种方法并比较了各自的优劣。

     

    方法一:
    直接通过Sql语句实现,如:

    SELECT TOP 100 * FROM BCUSTOMER_MZN 
    SELECT TOP 100 * FROM BCUSTOMER_MZN  ORDER BY NEWID()
    

    这是最简单的方法,通过调用SqlServer的newid()函数(产生GUID—全局唯一标志符)来产生随机记录。
    采用这种方法时,需要将表中所有记录与newid()生成的值进行比较从而进行排序。因此,如果表中的记录较多,操作会非常缓慢。

     

    方法二:

    假设表中有一个自增长主键,增量为1。这时我们可以这样处理,取出主键的边界值(最大值和最小值),然后通过一个算法得到介于(包括)两个边界之间的随机值,最后按照这个值取出对应记录。

     

    方法三:

    对方法二进行了改进。主要思路是,将表中所有的主键值读进一个数组,从数组中随机读出一个值,按照这个值取出对应记录。

  • 相关阅读:
    5个有趣且不必要的 JavaScipt 技巧
    动态规划的原理?
    如何避免出现failfast?
    动态规划的原理?
    jsp文件导包
    程序突击
    monthly report
    weekly review: 细节决定一切
    weekly review
    祸从口入祸从口出
  • 原文地址:https://www.cnblogs.com/qianjinyan/p/9776728.html
Copyright © 2011-2022 走看看