首页 > 数据库 >SQL-排序与分页

SQL-排序与分页

时间:2023-03-05 13:44:06浏览次数:44  
标签:salary 20 分页 ORDER LIMIT SQL 排序 id SELECT

1.排序(ORDER BY)

使用:ORDER BY 对查询到的数据进行排序操作

升序:ASC(ascend) 默认不写升序

降序:DESC(descend)

SELECT employee_id,salary FROM employees ORDER BY salary DESC;  

列的别名只能在ORDER BY 中使用,不能在WHERE中使用

 二级排序(多级)

如显示员工信息,按照department_id的降序排列,salary的升序排列

SELECT employee_id,salary,department_id AS DD
FROM employees
ORDER BY DD DESC,salary ASC;

 

2.分页(LIMIT)

LIMIT格式:LIMIT 位置偏移量,条目数

#每页显示pageSize条记录,此时显示第pageNo页
#公式:LIMIT (pageNo-1)*pageSize,pageSize;

#每页显示20条记录,此时显示第1页
SELECT employee_id,last_name FROM employees LIMIT 0,20
#每页显示20条记录,此时显示第2页
SELECT employee_id,last_name FROM employees LIMIT 20,20
#每页显示20条记录,此时显示第3页
SELECT employee_id,last_name FROM employees LIMIT 40,20
#WHERE...ORDER BY ...LIMIT声明顺序如下
SELECT employee_id,last_name,salary
FROM employees
WHERE salary > 6000
ORDER BY salary DESC 
LIMIT 10;

 

 

练习

#1.查询员工的姓名和部门号和年薪,按年薪降序,按姓名升序显示
SELECT last_name,department_id,salary*12 annual_sal FROM employees ORDER BY annual_sal DESC,last_name ASC;
#2.选择工资不在8000到17000的员工的姓名和工资,按工资降序,显示第21到40位置的数据
SELECT last_name,salary FROM employees WHERE salary NOT BETWEEN 8000 AND 17000 ORDER BY salary DESC LIMIT 20,20;
#3.查询邮箱中包含e的员工信息,并先按邮箱的字节数降序,再按部门号升序
SELECT employee_id,last_name,department_id FROM employees WHERE email LIKE "%E%" ORDER BY LENGTH(email) DESC,department_id ASC;

标签:salary,20,分页,ORDER,LIMIT,SQL,排序,id,SELECT
From: https://www.cnblogs.com/hhs1998/p/17180348.html

相关文章

  • P8大佬的 62条SQL优化策略,太牛X了!! 收藏起来有大用!!!
    背景说明:Mysql调优,是大家日常常见的调优工作。所以Mysql调优是一个非常、非常核心的面试知识点。在40岁老架构师尼恩的读者交流群(50+)中,其相关面试题是一个非常、非常......
  • mybatis分页插件的使用
    引入依赖<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.2.0</version></depend......
  • SQLAlchemy
    SQLAlchemy简单介绍ORM较全的框架,可以使用ORM操作表,比较方便ORMObjectRelationMApping对象关系映射通过操作对象的方式来操纵表之间的关系一.单表操作......
  • ruby postgresql 模糊搜索
    客户需求,通过name,email两列中的字段进行搜索过滤这项目之前用的​​pg_search​​​email的addresses是不能过滤的,例如[email protected],只能搜martin,搜163.com是搜不到的......
  • php 检测mysql表是否存在
    pdo:<?php$dsn='mysql:dbname=test;host=127.0.0.1';$user='root';$password='';try{$pdo=newPDO($dsn,$user,$password);}catch(PDOException$e){......
  • SQL笔记--MySQL高级操作
    MySQL高级SQL操作数据新增多数据插入蠕虫复制主键冲突查询数据查询选项别名数据源where子句groupby子句having子句orderby子句limit子句更新数据限制更新删除数据限制......
  • MySQL行列互转
    sudoservicemysqlstart--启动mysql服务mysql-uroot--使用root用户登录quit/exit--退出setnamesutf8;--设置传输编码,避免中文乱码sourced:/xxx.sql;--sou......
  • spark SQL 连接hive
    将hive的conf下的hive-site.xml复制到spark的conf下cp/usr/local/hive/apache-hive-1.2.2-bin/conf/hive-site.xml/usr/local/spark/spark-2.0.2-bin-hadoop2.6/conf/......
  • mysqli 批量执行多条语句
    可以一次性的执行多个操作或取回多个结果集。实例:<?php$mysqli=newmysqli("localhost","root","111111","test");/*checkconnection*/if(mysqli_connect_errno())......
  • mybatis中遇到的一个小问题【There is no result map named java.lang.Integer in thi
    在使用mybatis的时候,配置一个查询总数的SQL语句,发现提示下面的问题:Thereisnoresultmapnamedjava.lang.IntegerinthisSqlMap百思不得骑姐<selectid="UPP_COUPON_T......