方法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() 函數
並把結果集放在一個臨時表里面, 當批語句執行完畢, 此臨時表還可以使用
本文介绍了两种在SQL中获取特定行号范围数据的方法。第一种利用`row_number()`函数配合`over()`进行行号排序,然后筛选指定行数;第二种则使用`identity()`函数创建临时表,并通过`between`筛选行号。这两种方法在数据检索时非常实用。
336

被折叠的 条评论
为什么被折叠?



