FId:为你当前表的ID字段名
4、Oracle中随机提取数据库记录
随机提取access数据库记录的几种方法
前天有人在QQ群里问如何从Access数据库里随机抽取几条记录。这个问题如果放在SQL Server上就比较容易解决,比如随机抽取10条记录,采用的T-SQL语句是:
可以获得很好的效果,但是对于Access数据库而言就没有这么方便了。
在以前我也遇到过这样的问题,当时写一篇整理文字来讨论这个问题。这两天找到了这篇文字重新整理一下放在这里。 采用的Access数据库。总结了几种办法
方法一:有人用如下代码以记录总数为极大值来首先提取出指定数量的随机数,然后以这些随机数做为记录ID。
这种方式有一些问题,就是当主键ID不连续的话,有可能某些随机数不存在ID序列当中。另外ID的最大值与总的记录值不一定相等,这样有些记录ID会永远被忽略。
方法二:有人采用一条SQL语句解决此问题
这条语句可以随机从Access数据库中摄取5条记录。但是实际操作中,其生成的记录结果是固定的,失去了随机摄取记录的意义。
方法三:有这样一种方法。
利用随机数生成主键的记录ID
可以生成随机数多一点大于所限定抽取的随机数为好。这样可以排除记录不足的情况。
此方法也不太好,而且采用InStr语句,不能利用索引优化,对资源有一定的消耗。
这个方式感觉上比较好些。
此方法应该算是比较接近于SQL Server的用法了。
randomize '得到随机的种子,9999根据你的记录数量级调整,具体调到你出来的记录集随机序列均化
'以下两种方法都可以,id是主键自增字段
如果还有更好的方法也可以提出来。
生成随机数变得更容易和方便,下对它们生成随机数的方法进行一个对比和分析 vb随机数生成函数是 Rnd[(number)],number 参数为可选项。在调用 Rnd 生成随机数之前,先使用 Randomize 初始化随机数生成器来产生种子,该生成器是根据系统计时器来产生种子的。 1、生成100以内的随机数 2、生成指定范围随机数 由于 vb 没有提供直接生成指定范围随机数的函数,所以要把 Rnd 变通一下,方法如下: 把它封装成可直接调用的函数如下:
二、vb.net生成随机数的方法
|