zoukankan      html  css  js  c++  java
  • 13 排序(升序、降序)

    13 排序(升序、降序)
        
        按照工资升序,找出员工名和薪资
            select empno,ename,sal,job,comm from emp order by sal asc; // 默认升序排列  asc可以不写 desc降序
                +-------+--------+---------+-----------+---------+
                | empno | ename  | sal     | job       | comm    |
                +-------+--------+---------+-----------+---------+
                |  7369 | SMITH  |  800.00 | CLERK     |    NULL |
                |  7900 | JAMES  |  950.00 | CLERK     |    NULL |
                |  7876 | ADAMS  | 1100.00 | CLERK     |    NULL |
                |  7521 | WARD   | 1250.00 | SALESMAN  |  500.00 |
                |  7654 | MARTIN | 1250.00 | SALESMAN  | 1400.00 |
                |  7934 | MILLER | 1300.00 | CLERK     |    NULL |
                |  7844 | TURNER | 1500.00 | SALESMAN  |    0.00 |
                |  7499 | ALLEN  | 1600.00 | SALESMAN  |  300.00 |
                |  7782 | CLARK  | 2450.00 | MANAGER   |    NULL |
                |  7698 | BLAKE  | 2850.00 | MANAGER   |    NULL |
                |  7566 | JONES  | 2975.00 | MANAGER   |    NULL |
                |  7902 | FORD   | 3000.00 | ANALYST   |    NULL |
                |  7788 | SCOTT  | 3000.00 | ANALYST   |    NULL |
                |  7839 | KING   | 5000.00 | PRESIDENT |    NULL |
                +-------+--------+---------+-----------+---------+
                
        注意:默认是升序,怎么指定升序或者降序呢?asc表示升序,desc表示降序。
            select empno,ename,sal,job,comm from emp order by sal desc;
                +-------+--------+---------+-----------+---------+
                | empno | ename  | sal     | job       | comm    |
                +-------+--------+---------+-----------+---------+
                |  7839 | KING   | 5000.00 | PRESIDENT |    NULL |
                |  7788 | SCOTT  | 3000.00 | ANALYST   |    NULL |
                |  7902 | FORD   | 3000.00 | ANALYST   |    NULL |
                |  7566 | JONES  | 2975.00 | MANAGER   |    NULL |
                |  7698 | BLAKE  | 2850.00 | MANAGER   |    NULL |
                |  7782 | CLARK  | 2450.00 | MANAGER   |    NULL |
                |  7499 | ALLEN  | 1600.00 | SALESMAN  |  300.00 |
                |  7844 | TURNER | 1500.00 | SALESMAN  |    0.00 |
                |  7934 | MILLER | 1300.00 | CLERK     |    NULL |
                |  7654 | MARTIN | 1250.00 | SALESMAN  | 1400.00 |
                |  7521 | WARD   | 1250.00 | SALESMAN  |  500.00 |
                |  7876 | ADAMS  | 1100.00 | CLERK     |    NULL |
                |  7900 | JAMES  |  950.00 | CLERK     |    NULL |
                |  7369 | SMITH  |  800.00 | CLERK     |    NULL |
                +-------+--------+---------+-----------+---------+
                
        按照工资的降序排列,当工资相同的时候在按照名字的升序排列。
            select empno,ename,sal,job,comm from emp order by sal desc, ename asc;
                +-------+--------+---------+-----------+---------+
                | empno | ename  | sal     | job       | comm    |
                +-------+--------+---------+-----------+---------+
                |  7839 | KING   | 5000.00 | PRESIDENT |    NULL |
                |  7902 | FORD   | 3000.00 | ANALYST   |    NULL |
                |  7788 | SCOTT  | 3000.00 | ANALYST   |    NULL |
                |  7566 | JONES  | 2975.00 | MANAGER   |    NULL |
                |  7698 | BLAKE  | 2850.00 | MANAGER   |    NULL |
                |  7782 | CLARK  | 2450.00 | MANAGER   |    NULL |
                |  7499 | ALLEN  | 1600.00 | SALESMAN  |  300.00 |
                |  7844 | TURNER | 1500.00 | SALESMAN  |    0.00 |
                |  7934 | MILLER | 1300.00 | CLERK     |    NULL |
                |  7654 | MARTIN | 1250.00 | SALESMAN  | 1400.00 |
                |  7521 | WARD   | 1250.00 | SALESMAN  |  500.00 |
                |  7876 | ADAMS  | 1100.00 | CLERK     |    NULL |
                |  7900 | JAMES  |  950.00 | CLERK     |    NULL |
                |  7369 | SMITH  |  800.00 | CLERK     |    NULL |
                +-------+--------+---------+-----------+---------+
            注意:越靠前的字段越能起到主导作用。只有当前面的字段无法完成排序的时候,才会启用后面的字段。
            
        select empno,ename,sal,job,comm from emp order by 2; // 2就表示第二列 不建议使用这种方式,因为不健壮,只要查询的列名更改,那么排序将会发生改变。
            +-------+--------+---------+-----------+---------+
            | empno | ename  | sal     | job       | comm    |
            +-------+--------+---------+-----------+---------+
            |  7876 | ADAMS  | 1100.00 | CLERK     |    NULL |
            |  7499 | ALLEN  | 1600.00 | SALESMAN  |  300.00 |
            |  7698 | BLAKE  | 2850.00 | MANAGER   |    NULL |
            |  7782 | CLARK  | 2450.00 | MANAGER   |    NULL |
            |  7902 | FORD   | 3000.00 | ANALYST   |    NULL |
            |  7900 | JAMES  |  950.00 | CLERK     |    NULL |
            |  7566 | JONES  | 2975.00 | MANAGER   |    NULL |
            |  7839 | KING   | 5000.00 | PRESIDENT |    NULL |
            |  7654 | MARTIN | 1250.00 | SALESMAN  | 1400.00 |
            |  7934 | MILLER | 1300.00 | CLERK     |    NULL |
            |  7788 | SCOTT  | 3000.00 | ANALYST   |    NULL |
            |  7369 | SMITH  |  800.00 | CLERK     |    NULL |
            |  7844 | TURNER | 1500.00 | SALESMAN  |    0.00 |
            |  7521 | WARD   | 1250.00 | SALESMAN  |  500.00 |
            +-------+--------+---------+-----------+---------+
        
        找出工作岗位是salesman的员工,并且要求按照薪资的降序排列?
            select empno,ename,sal,job,comm,deptno from emp where job = 'salesman' order by sal desc;
                +-------+--------+---------+----------+---------+--------+
                | empno | ename  | sal     | job      | comm    | deptno |
                +-------+--------+---------+----------+---------+--------+
                |  7499 | ALLEN  | 1600.00 | SALESMAN |  300.00 |     30 |
                |  7844 | TURNER | 1500.00 | SALESMAN |    0.00 |     30 |
                |  7521 | WARD   | 1250.00 | SALESMAN |  500.00 |     30 |
                |  7654 | MARTIN | 1250.00 | SALESMAN | 1400.00 |     30 |
                +-------+--------+---------+----------+---------+--------+
        
        sql执行顺序    
            select
                *                    3
            from
                tablename    1
            where
                条件            2
            order by
                ...                4
                
            order by 是最后执行的。
  • 相关阅读:
    Linux 常用命令大全
    冒犯了,问大家一个问题,会linux的进来帮我解决一下
    Linux 软件安装
    Ubuntu 12.04出现“device not managed”错误
    Linux 系统下vi编辑器的使用方法(copy其他人网站的,留着自己查用的)
    tar的打包压缩与解压缩,并解压到指定的目录
    Ubuntu文件的复制、移动和删除命令
    当Ubuntu12.04 如何获取root权限
    windows是用vnc远程连接ubuntu的方法
    Ubuntu 12.04 在root登陆之后没有声音的解决方法
  • 原文地址:https://www.cnblogs.com/xlwu/p/13639505.html
Copyright © 2011-2022 走看看