--查询从第M条至N条的记录,写到存储过程中就是输入参数 declare @m int-- declare @n int-- declare @x int declare @y int --设置测试值 set @m=3 set @n=10 set @x=(@n-@m+1) set @y=(@m-1) /* 语法 Select top (n-(m-1)) * from [表名] where [parimary key] not in(select top (m-1) [主键] from [表名] order by [排序字段及排序方法]) order by [排序字段及排序方法 ]; */ --测试用例,因为T-sql top 后不支持表达式,故采取下面的方法 exec('select top '+@x+'* from kf.T_Community where [C_ID] not in (select top '+@y+' [C_ID] from kf.T_Community order by [C_ID]) order by [C_ID]')
--PS:如果在Orcale中,可以直接通过rownumber来控制,这样就容易多了