SQL如何显示查询结果的前100条?

SQL如何显示查询结果的前100条?,第1张

sqlserver支持top关键字,返回前100条数据。select

top

100

*

from

table//

返回前100行数据

mysql支持limit,一个参数:select

*

from

table

limit

100

//返回前100行记录

Oracle需要使用rownum。select

*

from

table

where

rownum<=100

//返回前100条数据

TOP

子句

TOP

子句用于规定要返回的记录的数目。

对于拥有数千条记录的大型表来说,TOP

子句是非常有用。

SQL

Server

的语法:

SELECT

TOP

number|percent

column_name(s)

FROM

table_name

limit子句用于强制select语句返回置顶的记录数,参数必须是整数常量。一个参数是返回前几条记录;两个参数时,第一个参数指定第一个返回记录行的偏移量(初始记录行的偏移量是0),第二个参数指定返回记录的最大数目。

rownum是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,且rownum不能以任何表的名称作为前缀

拓展资料:

SQL即结构化查询语言(Structured

Query

Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。SQL语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,SQL查询语句就是一个典型的例子,无论是高级查询还是低级查询,SQL查询语句的需求是最频繁的。

可用row_number来解决。

如student表:

姓名      年龄

张三       20

李四       15

王五       22

赵六       21

孙七       18

杨八       19

刘九       24

现在要按年龄从大到小取出前5条数据的话,可用如下语句:

select 姓名,年龄 

from

(select 姓名,年龄,row_number() over (order by 年龄 desc) as rn from student) t

where rn<=5

得到的结果是:

姓名      年龄

刘九       24

王五       22

赵六       21

张三       20

杨八       19

参考

首先,该问题对应的SQL如下

select 采购类别,客户,订货总额

from (select 采购类别,客户,订货总额,

row_number() over(partition by 采购类别 order by 订货总额 desc) rn

from table_name) a

where rn<=2

其次,常用数据库比如Oracle和Sqlserver都有特定函数完成分组排序的功能,如果需要显示并列的情况可以用下面另外的2个.

分别有3个类似函数:

row_number() over

这个函数不需要考虑是否并列,哪怕根据条件查询出来的数值相同也会进行连续排名。也是最常用的函数,排序结果类似于1,2,3,4,5

rank() over

查出指定条件后进行一个排名,但是有一个特点。假如是对学生排名,那么实用这个函数,成绩相同的两名是并列。排序结果类似于1,2,2,4,5

dense_rank() over

比较特殊,排序结果类似于1,2,2,3,4


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6830271.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存