方法1: 
with temp as 
( select row_number() over(order by cityID) as rownum,cityName from city ) 
select * from temp where rownum between 10 and 20 
go 
解释: 
1 此方法把括号里的查询结果放到变量:temp 里面( 我也不确定是不是变量), 并用row_number() 函数进行一个行号跟踪, 再用over 函数进行一个列的排序规则( 是这必须的), 并指定列名为'rownum' 
2 紧接着在下面的语句可以对 'rownum' 进行一个指定行号的查询 
3 此批语句执行完毕后, 变量:temp 释放 
方法2: 
select identity(int,1,1) as rownum, cityName into #temp from city 
select * from #temp where rownum between 10 and 20 
go 
解释: 
此方法跟上面的差不多的意思, 只不过把 row_number() 函数换成了 identity() 函数 
并把结果集放在一个临时表里面, 当批语句执行完毕, 此临时表还可以使用