一句SQL随机查询ACCESS中的几条记录

在Access中,为了实现随机查询记录,通常使用SQL语句`SELECT TOP n * FROM tanblename ORDER BY rnd([一个自动编号字段])`。然而,此方法在ASP中可能不会产生预期的随机效果,因为缺少`Randomize`语句。通过在ASP中加入`Randomize`并修改SQL语句为`SELECT TOP 3 [content_] FROM [T1] ORDER BY rnd(-(id_+" & rnd() & "))`,可以解决这个问题,确保每次请求都能得到不同的随机记录。
摘要由CSDN通过智能技术生成

这段时间要完成学校教学网的随机出题的模块,Access下利用sql = "select top "&Nums&"  * from  [table] order by rnd(一个自动增长的字段名)" 来做了,但我发现每次出题为什么不能'随机'了啊,总是那几道题,到CSDN找了一下,孟子E章说去看看DsClub的BLOG把,我近来一看果然发现这兄弟早就有一套他自己的解决方案了      

转如下:

针对“用一条SQL得到数据库中的随机记录集”问题在网上已经有很多答案了:
SQL Server 2000:
SELECT TOP n * FROM tanblename ORDER BY NEWID()
Access
SELECT TOP n * FROM tanblename ORDER BY rnd([一个自动编号字段])

好了!就说说这个Access的!

打开Access2003建立一个带有自动编号字段的表 T1 : id_(auto),content_
随便插入些许记录

然后,点选“查询”新建一个查询,“设计视图”,选择T1,然后选择SQL视图(这样可以写自己的SQL了,比较习惯),好了,写吧:

SELECT TOP 3 [content_] FROM [T1] ORDER BY rnd([id_])

然后运行一下结果,嗯记住了是什么结果哦。

返回SQL视图,再运行看结果&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值