SQL Server 对行数的排序提供了 TOP 筛选。SQL Server 2012 新增了 OFFSET 筛选。

一、TOP 筛选

  如果有 ORDER BY 子句,TOP 筛选将根据排序的结果返回指定的行数。如果没有 ORDER BY 子句,TOP 筛选将按照行的物理顺序返回指定的行数。

1. 返回指定数目的行

  TOP 用于指示从查询结果集返回指定数目的行。

  例如,返回前2行记录:

SELECT TOP (2) ColumnA, ColumnB

FROM Table1

2. 返回指定百分比的行

  可以使用百分比,如果遇到百分比的计算结果不是整数,将向上舍入(即“进一法”,而不是“四舍五入”或“截尾取整”)。例如,返回前10%的行:

SELECT TOP (10) PERCENT ColumnA, ColumnB

FROM Table1

3.WITH TIES 参数

  在与ORDER BY 子句组合使用时,有时候会出现并列排名的情况,例如,返回前10名优秀成绩的学生,可能遇到多名学生并列第10名。此时需要指定 WITH TIES,以确保并列第10名的学生都被包含到结果集中,此时的结果集可能多于10行。示例:

SELECT TOP (10) WITH TIES ColumnA, ColumnB

FROM Table1

ORDER BY ColumnA DESC

二、OFFSET 筛选

  OFFSET 子句必须与 ORDER BY 子句组合使用,而且不可以与 TOP 同时使用。与 TOP 相比,OFFSET 即没有 PERCENT 参数,也没有 WITH TIES 参数。

1. 跳过指定的行数

  OFFSET 子句指定在从查询表达式中开始返回行之前,将跳过的行数。OFFSET 子句的参数可以是大于或等于零的整数或表达式。ROW 和 ROWS 可以互换使用。例如:

SELECT ColumnA, ColumnB

FROM Table1

ORDER BY ColumnA

OFFSET 10 ROWS

2. 跳过指定的行数,再返回指定的行数

  FETCH 子句不可以单独使用,必须跟在 OFFSET 子句之后。

  FETCH 子句指定在处理 OFFSET 子句后,将返回的行数。FETCH 子句的参数可以是大于或等于 1 的整数或表达式。例如:

SELECT ColumnA, ColumnB

FROM Table1

ORDER BY ColumnA

OFFSET 10 ROWS

FETCH NEXT 5 ROWS ONLY

3. 参数互换

(1)ROW 和 ROWS 可以互换使用

  “1 ROWS”的表述虽然 SQL Server 的语法,但是不符合英文语法,因此,ROW 和ROWS 可以互换,例如“1 ROW”。

(2)FIRST 和 NEXT 可以互换使用

  遇到“OFFSET 0 ROWS”时(即不跳过任何行),“FETCH NEXT 5 ROWS ONLY”的表述看起来不太自然,因此,可以换为“FETCH FIRST 5 ROWS ONLY”。

4. 行数的表达式

  行数可以使用返回整数值的任何算术、常量或参数表达式,但不可以使用标量子查询。

TOP 和 OFFSET 筛选(转)的更多相关文章

  1. css3的transform变换scale和translate等影响jQuery的position().top和offset().top

    css3的transform变换scale和translate等影响jQuery的position().top和offset().top

  2. T-SQL :TOP和OFFSET-FETCH筛选 (五)

    通过were和having条件可以对数据进行筛选,那么如何通过排序对数据进行筛选呢? 1.TOP筛选 用于限制查询返回行数或者行数的百分比. 例如 我们对订单表筛选最近产生的订单5条 ) orderi ...

  3. 教你使用SQL查询(1-12)

    教你使用 Select 查询语句 (1) SELECT 语句基本语法简介 http://jimshu.blog.51cto.com/3171847/1363101(2) TOP 和 OFFSET 筛选 ...

  4. SQL Server之记录筛选(top、ties、offset)汇总

    一.TOP 筛选 如果有 ORDER BY 子句,TOP 筛选将根据排序的结果返回指定的行数.如果没有 ORDER BY 子句,TOP 筛选将按照行的物理顺序返回指定的行数. 1. 返回指定数目的行 ...

  5. .offset().top是什么意思?

    offset获取匹配元素在当前视口的相对偏移: 返回的对象包含两个整形属性:top,left.此方法只对 可见元素有效. $("#div").offset() 获得位移对象:(此时 ...

  6. Jquery中用offset().top和offsetTop的比较

    今天,想测试一个div与顶部的距离,用的是.offsetTop,但是offsetTop获得的值,怎么都打印不出来.折腾了半天,打印的结果都是undefined,虽然网上很多资料都说返回的是数值.虽然这 ...

  7. JQ的offset().top与JS的getBoundingClientRect区别详解,JS获取元素距离视窗顶部可变距离

     壹 ❀ 引 我在 JQ的offset().top与js的offsetTop区别详解 这篇博客中详细分析了JQ方法offset().top与JS属性offsetTop的区别,并得出了一条offset( ...

  8. sql2012 新增 OFFSET/FETCH

    SQL Server 对行数的排序提供了 TOP 筛选.SQL Server 2012 新增了 OFFSET 筛选. 一.TOP 筛选 如果有 ORDER BY 子句,TOP 筛选将根据排序的结果返回 ...

  9. JQuery框架2.位置属性|筛选方法|事件

    1.位置属性 jquery的css position获取匹配元素相对父元素的偏移位置:offset获取匹配元素在当前视口的相对偏移,返回的对象包含两个整型属性:top 和 left $("p ...

随机推荐

  1. keras安装

    找对工具真的很重要,周末和学霸折腾了一天才装了几个包,问了同事找了一个方便的包,装起来不要太快啊.二十分钟全部搞定. 一.Anaconda 真是大杀器,牛到飞起来,一键部署,所有常用的机器学习包全部包 ...

  2. JavaScript 智能社 拖拽

    <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...

  3. D2js 是如何处理并发的

    d2js 运行于 servlet 容器,如tomcat,由于容器自身支持并发,似乎 d2js 只要使用 nashorn 运行脚本即可.这样我们得到最简单的实现方式: 在该方式中,nashorn引擎仅存 ...

  4. 对于C语言复杂指针类型的分析

    转载自:http://www.slyar.com/blog/complicated-point-type.html int p; p是一个普通的整型变量. int *p; 1.p与*结合,说明p是一个 ...

  5. memcache服务器端及PHP memcache扩展的安装(转载)

    memcache服务器端的安装(windows版)    1.下载memcached软件 32位下载地址: memcached-win32-1.4.4-14.zip(直接下载) 下载页面: 64位下载 ...

  6. c/c++中关于sizeof、strlen的使用说明

    sizeof: 一般指类型.变量等占用的内存大小(由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小) strlen: c字符串的长度(参数必须是字符型指针 char*,当数组名作 ...

  7. 服务端调用dubbo的方式

    方式1.通过dubbo 方式2.通过spring applicationContext-dubbo.xml 注意引入提供方的接口jar包

  8. PhotoSwipe插件的使用

    1.首先引入插件 <link rel="stylesheet" href="css/photoswipe.css"> <link rel=&q ...

  9. Robot Framework用户手册 (版本:3.0)

    版权信息:诺基亚网络和解决中心 本翻译尊重原协议,仅用于个人学习使用 1.开始: 1.1 介绍: Robot Framework是一个基于Python的,为终端测试和验收驱动开发(ATDD)的可扩展的 ...

  10. Java控制Appium server start/stop

    相信很多人都会遇到这种场景,在进行appium自动化的时候用Windows OS,不好实现后台运行,每次启动Appium server: 使用Appium GUI版手动点击 就是在cmd line 启 ...