TOP 和 OFFSET 筛选(转)
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 筛选(转)的更多相关文章
- css3的transform变换scale和translate等影响jQuery的position().top和offset().top
css3的transform变换scale和translate等影响jQuery的position().top和offset().top
- T-SQL :TOP和OFFSET-FETCH筛选 (五)
通过were和having条件可以对数据进行筛选,那么如何通过排序对数据进行筛选呢? 1.TOP筛选 用于限制查询返回行数或者行数的百分比. 例如 我们对订单表筛选最近产生的订单5条 ) orderi ...
- 教你使用SQL查询(1-12)
教你使用 Select 查询语句 (1) SELECT 语句基本语法简介 http://jimshu.blog.51cto.com/3171847/1363101(2) TOP 和 OFFSET 筛选 ...
- SQL Server之记录筛选(top、ties、offset)汇总
一.TOP 筛选 如果有 ORDER BY 子句,TOP 筛选将根据排序的结果返回指定的行数.如果没有 ORDER BY 子句,TOP 筛选将按照行的物理顺序返回指定的行数. 1. 返回指定数目的行 ...
- .offset().top是什么意思?
offset获取匹配元素在当前视口的相对偏移: 返回的对象包含两个整形属性:top,left.此方法只对 可见元素有效. $("#div").offset() 获得位移对象:(此时 ...
- Jquery中用offset().top和offsetTop的比较
今天,想测试一个div与顶部的距离,用的是.offsetTop,但是offsetTop获得的值,怎么都打印不出来.折腾了半天,打印的结果都是undefined,虽然网上很多资料都说返回的是数值.虽然这 ...
- JQ的offset().top与JS的getBoundingClientRect区别详解,JS获取元素距离视窗顶部可变距离
壹 ❀ 引 我在 JQ的offset().top与js的offsetTop区别详解 这篇博客中详细分析了JQ方法offset().top与JS属性offsetTop的区别,并得出了一条offset( ...
- sql2012 新增 OFFSET/FETCH
SQL Server 对行数的排序提供了 TOP 筛选.SQL Server 2012 新增了 OFFSET 筛选. 一.TOP 筛选 如果有 ORDER BY 子句,TOP 筛选将根据排序的结果返回 ...
- JQuery框架2.位置属性|筛选方法|事件
1.位置属性 jquery的css position获取匹配元素相对父元素的偏移位置:offset获取匹配元素在当前视口的相对偏移,返回的对象包含两个整型属性:top 和 left $("p ...
随机推荐
- CSS清浮动处理(Clear与BFC)
在CSS布局中float属性经常会被用到,但使用float属性后会使其在普通流中脱离父容器,让人很苦恼 1 浮动带来布局的便利,却也带来了新问题 <!doctype html> <h ...
- make menuconfig出错,需要安装libncurses5-dev找不到文件的终极解决办法(不必更换源,适用于ubuntu 32位平台)
make menuconfig 错误,显示有curse 字样的文件没有装.用apt-get install 找不到,网上其他的办法说是源的问题,所以又更新了一下源,但是还是不好用,网速慢,更新太慢. ...
- REDHAT一总复习1 记录systemd日志条目 rsyslogd配置记录日志指令
显示9:05:00 到9:15:00 之间在/home/student/systemdreview.txt 文件中记录所有systemd日志条目 # echo "journalctl --s ...
- javac -encoding utf8 in linux
由于另外负责编码的同事用的是utf-8,我用的默认的编码格式gbk,在提交代码时,为了迁就他,我打算把格式用工具转成utf-8. 转化成果后,然后在make一下,发现javac -encoding u ...
- [转]MySQL日志——Undo | Redo
本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版 ...
- Windows 安装JRuby 生成 war 到 tomcat 运行
Windows安装JRuby Rails 直接下载 JRuby,不装 Ruby. http://jruby.org/download 该安装包可以配好环境变量 %JRUBY_HOME% 等 安装 bu ...
- C和指针 第十七章 二叉树删除节点
二叉树的节点删除分为三种情况: 1.删除的节点没有子节点,直接删除即可 2. 删除的节点有一个子节点,直接用子节点替换既可以 3.删除的节点有两个子节点. 对于第三种情况,一般是不删除这个节点,而是删 ...
- 使用Open xml 操作Excel系列之二--从data table导出数据到Excel
由于Excel中提供了透视表PivotTable,许多项目都使用它来作为数据分析报表. 在有些情况下,我们需要在Excel中设计好模板,包括数据源表,透视表等, 当数据导入到数据源表时,自动更新透视表 ...
- 原子类java.util.concurrent.atomic.*原理分析
原子类java.util.concurrent.atomic.*原理分析 在并发编程下,原子操作类的应用可以说是无处不在的.为解决线程安全的读写提供了很大的便利. 原子类保证原子的两个关键的点就是:可 ...
- Webstorm 2016.3激活码
webstorm 2016.3 可用激活码, 使用activation code方式激活 就这么任性,就这么长 43B4A73YYJ-eyJsaWNlbnNlSWQiOiI0M0I0QTczWVlKI ...