SQL语句如何返回某条记录在记录集中的第几条
SQL语句如何返回某条记录在记录集中的第几条比如有条记录的ID是5,记录集为select*fromtablewhereIDin(1,2,5,8,10)那么ID为5的记录在...
SQL语句如何返回某条记录在记录集中的第几条
比如有条记录的ID是5,记录集为select * from table where ID in (1,2,5,8,10) 那么ID为5的记录在这个记录集中应该是3,请问能否用一条sql语句来实现呢:
基本样式应该是
select $$$$$$ from
(select * from table where ID in (1,2,5,8,10))
where ID=5
就是标记 $$$$ 的地方应该怎么写呢?
含苞的方法 我试了可以,也写在了存储过程里面了,但循环的方法总觉得不太理想,有没有快速简单的方法呢?
沉默用户 你是拿我举的这个例子来说得 ,而我给出的记录集只是说测试用的,不一定就是ID的顺序排列的。 展开
比如有条记录的ID是5,记录集为select * from table where ID in (1,2,5,8,10) 那么ID为5的记录在这个记录集中应该是3,请问能否用一条sql语句来实现呢:
基本样式应该是
select $$$$$$ from
(select * from table where ID in (1,2,5,8,10))
where ID=5
就是标记 $$$$ 的地方应该怎么写呢?
含苞的方法 我试了可以,也写在了存储过程里面了,但循环的方法总觉得不太理想,有没有快速简单的方法呢?
沉默用户 你是拿我举的这个例子来说得 ,而我给出的记录集只是说测试用的,不一定就是ID的顺序排列的。 展开
4个回答
展开全部
只能用Fetch来循环读取 把它放在存储过程里:
declare @cur_pos int
declare mycursor cursor for
select id from bbsmenu order by ID asc -查询条件
declare @col1 char(10)
select @cur_pos=1
open mycursor
fetch next from mycursor into:@col1
while @@fetch_status<>-1
begin
if @col1=1
begin
select @cur_pos
CLOSE mycursor
DEALLOCATE mycursor
return
end
select @cur_pos=@cur_pos+1
fetch next from mycursor into:@col1
end
CLOSE mycursor
DEALLOCATE mycursor.
declare @cur_pos int
declare mycursor cursor for
select id from bbsmenu order by ID asc -查询条件
declare @col1 char(10)
select @cur_pos=1
open mycursor
fetch next from mycursor into:@col1
while @@fetch_status<>-1
begin
if @col1=1
begin
select @cur_pos
CLOSE mycursor
DEALLOCATE mycursor
return
end
select @cur_pos=@cur_pos+1
fetch next from mycursor into:@col1
end
CLOSE mycursor
DEALLOCATE mycursor.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sql好像没有提供这样的功能(也许本人不知道,知道的请教教我)
只能用Fetch来循环读取 把它放在存储过程里就OK拉
declare @cur_pos int
declare mycursor cursor for
select id from bbsmenu order by ID asc -查询条件
declare @col1 char(10)
select @cur_pos=1
open mycursor
fetch next from mycursor into:@col1
while @@fetch_status<>-1
begin
if @col1=1
begin
select @cur_pos
CLOSE mycursor
DEALLOCATE mycursor
return
end
select @cur_pos=@cur_pos+1
fetch next from mycursor into:@col1
end
CLOSE mycursor
DEALLOCATE mycursor
只能用Fetch来循环读取 把它放在存储过程里就OK拉
declare @cur_pos int
declare mycursor cursor for
select id from bbsmenu order by ID asc -查询条件
declare @col1 char(10)
select @cur_pos=1
open mycursor
fetch next from mycursor into:@col1
while @@fetch_status<>-1
begin
if @col1=1
begin
select @cur_pos
CLOSE mycursor
DEALLOCATE mycursor
return
end
select @cur_pos=@cur_pos+1
fetch next from mycursor into:@col1
end
CLOSE mycursor
DEALLOCATE mycursor
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
该天有空告诉你
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询