[求一SQL语句]如果取得某记录在数据录中的位置

scoutlin 2004-12-24 08:41:10
ACCESS中
...全文
167 点赞 收藏 19
写回复
19 条回复
scoutlin 2004年12月24日
那效率也太低了吧
回复 点赞
xiaoyuehen 2004年12月24日
以上两种方法和ID号是否连续无关, 但要求ID号必须为数字并唯一, 否则可能会取得不想要的结果, 记录顺序是以ID由小到大.
回复 点赞
NewBody 2004年12月24日
补充:
大多数据库支持;该属性可读写.
回复 点赞
NewBody 2004年12月24日
用记录集的AbsolutePosition,不过好象有些数据库不支持它.
回复 点赞
xiaoyuehen 2004年12月24日
第二种方法, 想取得第 x 条记录可以用下面的语句(Access 2000 测试通过):
SELECT ID FROM (SELECT A.ID, SUM(IIF(A.ID >= B.ID, 1, 0)) AS NUM FROM 表A AS A, 表A AS B GROUP BY A.ID) WHERE NUM = 5
回复 点赞
scoutlin 2004年12月24日
楼上强淫,结贴了
回复 点赞
xiaoyuehen 2004年12月24日
1.首先要知道这条记录的ID号, 假设为intID
2.用语句SELECT COUNT(*) FROM TABLE WHERE ID <= intID 得到的就是第几条记录了.
回复 点赞
ls25145 2004年12月24日
Mark
回复 点赞
ttkkyy 2004年12月24日
只有做一个循环,设i=1
当找到你要的纪录就退出,这时i就是你要的了
回复 点赞
scoutlin 2004年12月24日
枚举的话
如果记录很多...

效率很低
回复 点赞
scoutlin 2004年12月24日
up
回复 点赞
cheng17 2004年12月24日
试一下这个行不行:
' 使用客户端游标为雇员表打开一个记录集。
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
Set rstEmployees = New ADODB.Recordset
' 使用客户端游标激活 AbsolutePosition 属性。
rstEmployees.CursorLocation = adUseClient
rstEmployees.Open "employee", strCnn, , , adCmdTable

' 枚举记录集。
Do While Not rstEmployees.EOF
' 显示当前记录信息。
strMessage = "Employee: " & rstEmployees!lName & vbCr & _
"(record " & rstEmployees.AbsolutePosition & _
" of " & rstEmployees.RecordCount & ")"
If MsgBox(strMessage, vbOKCancel) = vbCancel _
Then Exit Do
rstEmployees.MoveNext
Loop
回复 点赞
wq99 2004年12月24日
要不循环一下?
回复 点赞
cheng17 2004年12月24日
删除过记录就不好解决了
回复 点赞
7ero 2004年12月24日
要那个有什么用呀?
回复 点赞
showliz 2004年12月24日
用自增式的标识ID就可以知道它在数据库中是第几条记录了嘛
回复 点赞
beliefljh 2004年12月24日
这个还真不好解决,我帮你找找看吧!
回复 点赞
scoutlin 2004年12月24日
我想知道它在数据库中是第几条记录
回复 点赞
whb147 2004年12月24日
你用查询用ID就可以了呀
你想干什么??
回复 点赞
发动态
发帖子
ASP
创建于2007-09-28

1.9w+

社区成员

35.7w+

社区内容

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区公告
暂无公告