sql 分页取每页最后一条
table1
id name ...
1 s
2 c
3 b
4 d
6 s
8 t
9 a
10 cc
11 tt
13 ss
14 e
15 b
16 u
17 9
18 jj
19 pp
20 to
21 tb
22 tu
23 uc
24 ue
25 ub
26 yk
.........
id是有序的,但不是连续的,现在分页,每页取10条,按id排序,想得到每一中最大的id结果如下:
table1
13
22
....
------解决方案--------------------
------解决方案--------------------
- SQL code
drop table #table1create table #table1(id int, name varchar(20))insert #table1 values(1, 's')insert #table1 values(2, 'c')insert #table1 values(3, 'b')insert #table1 values(4, 'd')insert #table1 values(6, 's')insert #table1 values(8, 't')insert #table1 values(9, 'a')insert #table1 values(10, 'cc')insert #table1 values(11, 'tt')insert #table1 values(13, 'ss')insert #table1 values(14, 'e')insert #table1 values(15, 'b')insert #table1 values(16, 'u')insert #table1 values(17, '9')insert #table1 values(18, 'jj')insert #table1 values(19, 'pp')insert #table1 values(20, 'to')insert #table1 values(21, 'tb')insert #table1 values(22, 'tu')insert #table1 values(23, 'uc')insert #table1 values(24, 'ue')insert #table1 values(25, 'ub')insert #table1 values(26, 'yk')drop table #select (ROW_NUMBER() over(order by id)-1)/10 as rowNo, id, name into # from #table1select * from # a where id=(select max(id) from # where rowNo=a.rowNo)