引用自:http://cai555.javaeye.com/blog/466033
方法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() 函数
并把结果集放在一个临时表里面, 当批语句执行完毕, 此临时表还可以使用