mysql函数(一) limit 与offset结合排序获取第2高的数据

Mysql limit offset示例

例1,假设数据库表student存在13条数据。

语句1:select * from student limit 9,4
语句2:slect * from student limit 4 offset 9

// 语句1和2均返回表student的第10、11、12、13行 //语句2中的4表示返回4行,9表示从表的第十行开始

例2,通过limit和offset 或只通过limit可以实现分页功能。

假设 numberperpage 表示每页要显示的条数,pagenumber表示页码,那么
返回第pagenumber页,每页条数为numberperpage的sql语句:

语句3:

select * from studnet limit (pagenumber-1)*numberperpage,numberperpage

语句4:

select * from student limit numberperpage offset (pagenumber-1)*numberperpage

第二高的查询
1.剔除法:先查询出最大值后,再查一下一次出了第一次最大值外的最大值

select  max(Salary) as SecondHighestSalary from Employee 
where Salary<(select max(Salary) from Employee)

2.使用 limit offset函数来查询
2.1.使用子查询和限定条件

select (

          select DISTINCT  Salary   //去重

           from Employee 

           ORDER BY Salary DESC       //降序排列

         limit 1 offset 1  //从第一条数据读取(offset 1 ,但不包括第一条),往后读取一条数据(limit 1 ),即第二条;

) as SecondHightestSalary;

2.2.使用IFFULL语句和LIMIT语句

select

IFFULL(

         ( select DISTINCT  Salary   

           from Employee 

           ORDER BY Salary DESC  

           limit 1 offset 1),NULL

) as  SecondHightestSalary;

你可能感兴趣的:(mysql,sql)