以查询前20到30条为例,主键名为id

方法一: 先正查,再反查
select top 10 * from (select top 30 * from tablename order by id asc) A order by id desc

方法二: 使用left join
select top 10 A.* from tablename A
left outer join (select top 20 * from tablename order by id asc) B
on A.id = B.id
where B.id is null
order by A.id asc

方法三: 使用not exists
select top 10 * from tablename A
where id not exists
(select top 20 * from tablename B on A.id = B.id)

方法四: 使用not in
select top 10 * from tablename
where id not in
(select top 20 id from tablename order by id asc)
order by id asc

方法五: 使用rank()
select id from
(select rank() over(order by id asc) rk, id from tablename) T
where rk between 20 and 30

中第五种方法看上去好像没有问题,查了下文档,当over()用于rank/row_number时,整型列不能描述一个列,所以会产生非预期的效果. 待考虑下,有什么办法可以修改为想要的结果.

更多相关文章

  1. 细数Android(安卓)Studio中使用junit4测试框架中的坑
  2. Android(安卓)获取手机本地图片所在的位置
  3. 获取Android(安卓)Device的信息
  4. Android(安卓)Studio [相对布局RelativeLayout]
  5. Android数据存储路径位置
  6. 获取Android(安卓)Device的信息
  7. Unable to resolve target 'android-18' android导入工程报错
  8. AV-Test公布Android杀软应用测试结果(悲伤)
  9. Android(安卓)Java汉字转拼音总结

随机推荐

  1. 监听android电话呼叫状态
  2. Android使用Google提供的地图实现定位时L
  3. Android实现自定义对话框(Dialog)
  4. Android 系统音量最大值的定义位置以及默
  5. android .apk 反编译
  6. Android(安卓)串口通信编程及串口协议分
  7. 【Android】Android Studio中gradle scri
  8. Flutter1.12与原生Android交互(kotlin)
  9. android开发 常用技巧
  10. android 源码导入到android studio