Access数据库读取从前m条到第n条的数据,比如读取从第20条到第30条的记录
表的特征是有id 自增长,但id不是连续的比如1,2,3,5,7,8,10,11,15......
望高手指教 如何写SQL语句呢?
MDB数据库
程序用在C# winform中,仅仅需要一个SQL语句就可以了,就不能提供类似:select top m from table where id not in(..............),等等可行的SQL语句,只需要SQL语句,谢谢
Access数据库读取从前m条到第n条的数据?
答案:3 悬赏:0 手机版
解决时间 2021-03-23 01:45
- 提问者网友:姑娘长的好罪过
- 2021-03-22 11:52
最佳答案
- 五星知识达人网友:话散在刀尖上
- 2021-03-22 12:03
用ID排序,每次抽取10条记录,可以这样写:
select top 10 * from MyTable Where ID>MyTopID
MyTopID初始为0,以后为每次查询结果的最后一条记录的ID
select top 10 * from MyTable Where ID>MyTopID
MyTopID初始为0,以后为每次查询结果的最后一条记录的ID
全部回答
- 1楼网友:骨子里都是戏
- 2021-03-22 14:52
access数据库不熟悉 不过如果可以使用rownum的话 就是 rownum>=m and rownum<=n 不能使用rownum的话 应该就是用top吧 先取一次top n就是取从1到n 然後在写一个 not in top m 这样就可以取到从m到n了 具体是用m还是m+1 或者m-1你自己看需求测试下吧
- 2楼网友:归鹤鸣
- 2021-03-22 13:25
rnd是asp的一个随即函数,但是sql中并无此函数,故,你的这个sql语句是有问题的。
你可以这样写
<%
set rs=server.CreateObject("adodb.recordset")
rs.open "select top 1 id from url order by id desc",conn,1,1
if not rs.bof and not rs.eof then
maxid=rs("id")
rs.close
function suiji()
Randomize
suiji=Int((maxid - 1+ 1) * Rnd + 1)
end function
'然后开始随即提取记录
i=0
do while i<1
rs.open "select * from url where id="&suiji(),conn,1,1
if not rs.bof and not rs.eof then
i=i+1
response.write "你现在随即提取的记录的id是"&rs("id")
end if
rs.close
loop
%>
这样不就随即提取出来了一个了?呵呵是不是很简单?当然,这个东西如果你随即提取一条是不成问题的,如果提取多条,很可能会有重复显示的现象,那么,如何来让他在提取多条记录时不重复呢?哎,自己多想想吧哈哈,这是我年前写过的小程序了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯