sql语句中的limit n,limit n,m 和 limit m offset n 的区别

目录

一:limit n 和limit n,m的区别:

二:limit n,m 和limit m offset n的区别:

三:用一道leetcode题进行实践

前提解释:

  这里的n表示:需要展示多少条结果数据(要几条)。

  这里的m表示:从第m条开始展示结果数据 (从哪里)  。   

一:limit n 和limit n,m的区别:

日常开发中,我们为了展示有限量的结果,常常这样写

select * from table_tmp limit 100;

表示要展示100条结果数据。其实,这里的完整写法应该为

select * from table_tmp limit 0,100

即 从第1条开始展示,一共展示100条数据。于是,当你需要从第21条开始展示,展示40条数据时,就可以这么写

select * from table_tmp limit 20,40;

二:limit n,m 和limit m offset n的区别:

还是上个例子

select * from table_tmp limit 0,100;

用limit n offset m 会写成为

select * from table_tmp limit 100 offset 0;

 表示从第一行开始取,一共取100条结果数据,其实就是将 limit n,m中的变量互换位置后,中间就要加offset,表示的含义是一样的。

三:用一道leetcode题进行实践

Employee 表:
+-------------+------+
| Column Name | Type |
+-------------+------+
| id          | int  |
| salary      | int  |
+-------------+------+
id 是这个表的主键。
表的每一行包含员工的工资信息。
 

编写一个 SQL 查询,获取并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null 

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/second-highest-salary
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

根据题目,我的方式如下:

select t2.SecondHighestSalary from Employee t1
left join  --左连接可以保证第二名为null时结果为null
(select 
    id,
    ifnull((select distinct salary from Employee order by salary desc limit 1,1),null) as        
    SecondHighestSalary 
from Employee) t2
on t1.id = t2.id
order by t2.salary desc limit 0,1;

you got right?

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值