呵,高手们好哈,这个问题不知道用什么办法解决好哈

postfix2 2004-07-08 08:45:50
表里面有这样的一些记录tablename
N_id N_title N_content
1 aaa .
3 . .
4 . .
10
20
21
22
.
.

如何查询比如说Select top @id;@id=1就查询top1-top5
如果@id=2就查询出top6-top10
@id=3就查询出top11-top15,N_id不是连续的!!!
高手们,明白我的意思了吗?希望得到一个好的存储过程
...全文
120 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
postfix2 2004-07-08
  • 打赏
  • 举报
回复
是啊,2楼的老兄有什么好的方法吗?帖出来看一下中啊
huwgao 2004-07-08
  • 打赏
  • 举报
回复
create proc test (@id int)
as
declare @strsql varchar(4000)

select @strsql=
'select top 5 N_id,N_title,N_content
from (select top 5 N_id
from (select top '+cast(@id*5 as varchar(5))+' N_id
from tablename
order by N_id) c
where c.N_id>(select isnull(max(N_id),(select min(N_id) from tablename))
from (select top '+cast((@id-1)*5 as varchar(5))+' N_id
from tablename order by N_id) d)
order by N_id desc) a, tablename b
where b.N_id= a.N_id
order by a.N_id'

execute(@strsql)
frankwong 2004-07-08
  • 打赏
  • 举报
回复
查询数量不确定,可以使用动态语句
delcaer @sql varchar(1000)
set @sql='select top ' + @id + ' * from 你的表'
exec (@sql)
至于查询其中的几个至第几个,另谋高就吧!
pbsql 2004-07-08
  • 打赏
  • 举报
回复
用存储过程做分页
JackSonzhang 2004-07-08
  • 打赏
  • 举报
回复
你的top1 - top5 是什么意思,是取前5个吗?
klan 2004-07-08
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/2663/2663568.xml?temp=.4632837
klan 2004-07-08
  • 打赏
  • 举报
回复
参考:

http://expert.csdn.net/Expert/topic/2365/2365596.xml?temp=.8605615

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧