博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
T-SQL学习中--取得部分检索数据记录
阅读量:7107 次
发布时间:2019-06-28

本文共 1586 字,大约阅读时间需要 5 分钟。

SELECT TOP(n) FROM _TableName_ ORDER BY _ColumnName_是一种非标准SQL语句,从数据表中最多检索出排在前面的n条数据来,但是它可以用SELECT TOP(n) PERCENT FROM _TABLENAME_ ORDER BY 这样的根据总数据量来按比例取得数据记录。

如果数据表中有560条数据,检索SELECT TOP(1) FROM _TableName_ ORDER BY _ColumnName_就会检索出6条数据来,总而言之,不是按四舍五入计的,而是按ceil向上取整法计数的。
如果不加ORDER BY,数据会以不确定的顺序检索出来。
这里括号可有可无,但是建议加括号。
n可以是常数,也可以是定义的变量。下面这种写法也是可以的:

SQLDECLARE @n AS BIGINT = 5;SELECT TOP (@n) orderid, orderdate, custid, empidFROM Sales.OrdersORDER BY orderdate DESC;GO

如果加了WITH TIE,比如说写成

SQLSELECT TOP (3) WITH TIES orderid, orderdate, custid, empidFROM Sales.OrdersORDER BY orderdate DESC;

orderdate相同的数据会被计作一条数据,总检索出的结果可能不止3条。

OFFSET FETCH语句是标准SQL语句。但是它有局限性,不能按百分比检索出数据结果。

SQLSELECT orderid, orderdate, custid, empidFROM Sales.OrdersORDER BY orderdate DESC, orderid DESCOFFSET 50 ROWS FETCH NEXT 25 ROWS ONLY;

表示跳过前50条数据,取得第51到第75条数据。

SQLSELECT orderid, orderdate, custid, empidFROM Sales.OrdersORDER BY orderdate DESC, orderid DESCOFFSET 0 ROWS FETCH FIRST 25 ROWS ONLY;

表示取得第1到第25条数据。

SQLSELECT orderid, orderdate, custid, empidFROM Sales.OrdersORDER BY orderdate DESC, orderid DESCOFFSET 50 ROWS;

表示跳过前50条数据,取得之后的全部数据。

OFFSET FETCH语句必须带有ORDER BY语句,但是如果不想指定用于排序的columnName,可以用下面这种这种语法,即用SELECT NULL作为排序列:

SQLSELECT orderid, orderdate, custid, empidFROM Sales.OrdersORDER BY (SELECT NULL)OFFSET 0 ROWS FETCH FIRST 3 ROWS ONLY;

OFFSET FETCH可用于分页检索,比如说下面这种写法:

SQLDECLARE @pagesize AS BIGINT = 25, @pagenum AS BIGINT = 3;SELECT orderid, orderdate, custid, empidFROM Sales.OrdersORDER BY orderdate DESC, orderid DESCOFFSET (@pagenum - 1) * @pagesize ROWS FETCH NEXT @pagesize ROWS ONLY;

转载地址:http://rkjhl.baihongyu.com/

你可能感兴趣的文章
bootstrap 标签切换
查看>>
bootstrap01登录小例子
查看>>
hive
查看>>
linux中的fork()函数以及标准I/O缓冲
查看>>
SPL标准库常用的数据结构
查看>>
JavaMail简单接收邮件
查看>>
10月浏览器市场统计:Chrome继续劫掠IE
查看>>
Windows下lex 与 yacc的使用
查看>>
Scrapy基础
查看>>
js刷新当前页面 (转)
查看>>
oracle博客网址
查看>>
查询速度优化用not EXISTS 代替 not in
查看>>
关于php接收http模拟post传json格式时$_POST为空的问题
查看>>
阅读教材后未能解决的问题
查看>>
时间控件
查看>>
计算机和常见Dos命令
查看>>
Perl简单教程
查看>>
windows 加入域
查看>>
webstorm的快捷键总结
查看>>
[BZOJ5267]特工
查看>>