• 全部
  • 基础类
  • 应用实例
  • 新技术前沿

sql查询问题!!想取到第a条与第b条中间的(包括a)的所有数据,怎么写???

iceman09 2003-05-16 09:54:59
sql查询问题!!想取到第a条与第b条中间的(包括a)的所有数据,怎么写???
(a<b)a,b是从外面传进来的整形变量。
...全文
39 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
19191919 2003-05-16
select top b-a * from yourTable where id not in(select top a-1 id from table)
ID为表具有唯一值的任何字段或任何字段的组合
同时注意top 后面不支持参数,如果含参数执行要用exec
exec('select top '+@b-@a 的变量 +' * from yourTable where id not in(select top' + @a-1 的变量+' id from table)'
)
如果没有唯一值,按照蚂蚁的就可以了
回复
psxfghost 2003-05-16
更正:
select * from (select identity(1,1) as id,top b * from table) a where a.id not in(select b.id from (select identity(1,1) as id, top a * from table) as b)

或者
select identity(1,1) as id, * into #temp from table
select * from #temp where id>=a and id<=b
回复
yoki 2003-05-16
方法一:取出前n条和前m条然后取出其差(n-m)
select top(n-m) *
from table
where 关键字段 not in(select top m 关键字段 from table)

方法二:先取出前n条的,再倒过来取出n-m就可以
select top(n-m+1) *
from (select top n * from table order by 关键字段 desc)
order by 关键字段
回复
CrazyFor 2003-05-16


查询N-M条记录。
select IDENTITY(int,1,1) as iid,* into #temptable from yourtable
select top M-N * from #temptable where iid>=N

OR:

select top M-N * from yourTable where id not in(select top N-1 id from table)
ID为表具有唯一值的任何字段
回复
psxfghost 2003-05-16
select * from (select identity(1,1) as id,top b * from table) a where a.id not in(select identity(1,1) as id top a id from table)
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2003-05-16 09:54
社区公告
暂无公告