1. 去重,取重复记录中的第一条
SQL表中有些记录关键字重复,很不方便取数据,这里就要用到row_number来排序取数据;
比如表中有数据如下:
code | condition | flag | createTime |
0210001 | 内容 | 0 | 2022-05-12 11:43:23.583 |
0210001 | 内容 | 0 | 2022-01-15 10:10:50.160 |
select a.*
from (
select *, row_number() over (partition by [code] order by [createTime] desc) as group_idx
from table_name
) a
where s.group_idx = 1
执行结果如下:
code | condition | flag | createTime |
0210001 | 内容 | 0 | 2022-05-12 11:43:23.583 |
摘自:https://blog.csdn.net/qq165285727/article/details/95943521
2. 分页
使用row_number方法给要查询的记录排号,取起始索引后的一段记录即可;
设定:页大小50;
查询第4页的记录,前面3页的记录数量是150;
select top 50 * from (
select 要查找的字段列表, row_number() over(order by 排序的字段) as inx from 表名称
) o where inx > 150;