-- 从第一条查到第一千条
select * from (
select 字段列表,
rownumber() over (order by 排序字段1, 排序字段2 ) as orowid
from 表名
) as o where o.orowid >= 1 and o.orowid <= 1000;
select 姓名,地区,年龄
from
(
select
字段1, 字段2, 字段3
,row_number()over(partition by 姓名,地区 order by 地区) as row
from
table1
)
where row=1
分页 + 去重
分页SQL和去重SQL如果要同时使用,则要写双重子查询:
select * from (
select i.*,
rownumber() over (order by 字段列表 ) as orowid
from (
select 字段列表
rownumber() over (partition by 去重分组字段列表 order by 排序字段列表 ) as rowid
from 表名
) as i where rowid = 1
) as o where o.orowid >= 1 and o.orowid <= 1000;