DQL排序查询
- 排序查询
- ASC升序(默认,可不写)
- DESC降序
- 多字段降序
- 去重并降序
- 隐式排序--不可靠
排序查询
将行数据按照列1
进行排序
,如果某些行列1
的值相同
时,则按照列2
排序,以此类推
-- 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;
去重并降序
-- 显示商品的价格-去重降序
SELECT DISTINCT price
FROM product
ORDER BY price DESC;
-- 查询姓名第二个字母不是“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后面
,但依然能按照这个列名进行排序。