DQL排序查询

  • 排序查询
  • ASC升序(默认,可不写)
  • DESC降序
  • 多字段降序
  • 去重并降序
  • 隐式排序--不可靠


排序查询

将行数据按照列1进行排序,如果某些行列1值相同时,则按照列2排序,以此类推

DQL排序查询_数据库


DQL排序查询_升序_02

DQL排序查询_sql_03



DQL排序查询_数据库_04


DQL排序查询_字段_05

-- 1表时按照selec1后的第1列排序
select 列1,列2,列3,列4 from 表名 order by 1;



ASC升序(默认,可不写)

● ASC从小到大排列,即升序
● 排序默认是ASC升序,如果sql语句不写ASC,默认升序。

-- 升序ASC
SELECT *
FROM score
WHERE c_name = '计算机'
ORDER BY grade ASC;

-- 按员工编号升序排列不在10号部门工作的员工信息
SELECT *
FROM emp
WHERE deptno != 10
ORDER BY empno ASC;



DESC降序

● DESC从大到小排序,即降序

-- 使用价格降序
SELECT *
from product
ORDER BY price desc;

-- 降序 DESC
SELECT *
FROM score
WHERE c_name = '计算机'
ORDER BY grade DESC;



多字段降序
-- 在价格降序的基础上,以分类排序(降序)
SELECT *
FROM product
ORDER BY price DESC,
    category_id DESC;

DQL排序查询_升序_06



去重并降序
-- 显示商品的价格-去重降序
SELECT DISTINCT price
FROM product
ORDER BY price DESC;

DQL排序查询_java_07

-- 查询姓名第二个字母不是“A”且薪水大于1000元的员工信息,按年薪降序排列
-- 年薪=12*月薪+奖金
-- ifnull(comm,0) 如果comm的值为null,则当作0,不为null,则还是原来的值
SELECT *
FROM emp
WHERE ename NOT LIKE '_A%'
    AND sal > 1000
ORDER BY(12 * sal + ifnull(comm, 0)) DESC;



隐式排序–不可靠

SQL隐式排序,是指 ORDER BY指定的列名并不在select后面,但依然能按照这个列名进行排序。

DQL排序查询_数据库_08


DQL排序查询_数据库_09