sql中的order by

SQL> --order by后面 + 列、表达式、别名、序号
SQL> select empno,ename,sal,sal*12
  2  from emp
  3  order by sal*12 desc;


     EMPNO ENAME      SAL     SAL*12                                                                                                                  
---------- -------- ----- ----------                                                                                                                  
      7839 KING      5000      60000                                                                                                                  
      7902 FORD      3000      36000                                                                                                                  
      7788 SCOTT     3000      36000                                                                                                                  
      7566 JONES     2975      35700                                                                                                                  
      7698 BLAKE     2850      34200                                                                                                                  
      7782 CLARK     2450      29400                                                                                                                  
      7499 ALLEN     1600      19200                                                                                                                  
      7844 TURNER    1500      18000                                                                                                                  
      7934 MILLER    1300      15600                                                                                                                  
      7521 WARD      1250      15000                                                                                                                  
      7654 MARTIN    1250      15000                                                                                                                  


     EMPNO ENAME      SAL     SAL*12                                                                                                                  
---------- -------- ----- ----------                                                                                                                  
      7876 ADAMS     1100      13200                                                                                                                  
      7900 JAMES      950      11400                                                                                                                  
      7369 SMITH      800       9600                                                                                                                  


已选择 14 行。


SQL> ed
已写入 file afiedt.buf


  1  select empno,ename,sal,sal*12 年薪
  2  from emp
  3* order by 年薪 desc
SQL> /


     EMPNO ENAME      SAL       年薪                                                                                                                  
---------- -------- ----- ----------                                                                                                                  
      7839 KING      5000      60000                                                                                                                  
      7902 FORD      3000      36000                                                                                                                  
      7788 SCOTT     3000      36000                                                                                                                  
      7566 JONES     2975      35700                                                                                                                  
      7698 BLAKE     2850      34200                                                                                                                  
      7782 CLARK     2450      29400                                                                                                                  
      7499 ALLEN     1600      19200                                                                                                                  
      7844 TURNER    1500      18000                                                                                                                  
      7934 MILLER    1300      15600                                                                                                                  
      7521 WARD      1250      15000                                                                                                                  
      7654 MARTIN    1250      15000                                                                                                                  


     EMPNO ENAME      SAL       年薪                                                                                                                  
---------- -------- ----- ----------                                                                                                                  
      7876 ADAMS     1100      13200                                                                                                                  
      7900 JAMES      950      11400                                                                                                                  
      7369 SMITH      800       9600                                                                                                                  


已选择 14 行。


SQL> ed
已写入 file afiedt.buf


  1  select empno,ename,sal,sal*12 年薪
  2  from emp
  3* order by 4 desc
SQL> /


     EMPNO ENAME      SAL       年薪                                                                                                                  
---------- -------- ----- ----------                                                                                                                  
      7839 KING      5000      60000                                                                                                                  
      7902 FORD      3000      36000                                                                                                                  
      7788 SCOTT     3000      36000                                                                                                                  
      7566 JONES     2975      35700                                                                                                                  
      7698 BLAKE     2850      34200                                                                                                                  
      7782 CLARK     2450      29400                                                                                                                  
      7499 ALLEN     1600      19200                                                                                                                  
      7844 TURNER    1500      18000                                                                                                                  
      7934 MILLER    1300      15600                                                                                                                  
      7521 WARD      1250      15000                                                                                                                  
      7654 MARTIN    1250      15000                                                                                                                  


     EMPNO ENAME      SAL       年薪                                                                                                                  
---------- -------- ----- ----------                                                                                                                  
      7876 ADAMS     1100      13200                                                                                                                  
      7900 JAMES      950      11400                                                                                                                  
      7369 SMITH      800       9600                                                                                                                  


已选择 14 行。


SQL> ed
已写入 file afiedt.buf


  1  select empno,ename,sal,sal*12 年薪
  2  from emp
  3* order by 5 desc
SQL> /
order by 5 desc
         *
第 3 行出现错误: 
ORA-01785: ORDER BY 项必须是 SELECT-list 表达式的数目 




SQL> host cls


SQL> --多个列排序
SQL> select *
  2  from emp
  3  order by deptno,sal;


     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                   
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                                                   
      7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                                                   
      7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                                                   
      7839 KING     PRESIDENT            17-11月-81      5000                    10                                                                   
      7369 SMITH    CLERK           7902 17-12月-80       800                    20                                                                   
      7876 ADAMS    CLERK           7788 23-5月 -87      1100                    20                                                                   
      7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                                                   
      7788 SCOTT    ANALYST         7566 19-4月 -87      3000                    20                                                                   
      7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                                                   
      7900 JAMES    CLERK           7698 03-12月-81       950                    30                                                                   
      7654 MARTIN   SALESMAN        7698 28-9月 -81      1250       1400         30                                                                   
      7521 WARD     SALESMAN        7698 22-2月 -81      1250        500         30                                                                   


     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                   
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                                                   
      7844 TURNER   SALESMAN        7698 08-9月 -81      1500          0         30                                                                   
      7499 ALLEN    SALESMAN        7698 20-2月 -81      1600        300         30                                                                   
      7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                                                   


已选择 14 行。


SQL> ed
已写入 file afiedt.buf


  1  select *
  2  from emp
  3* order by deptno,sal desc
SQL> /


     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                   
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                                                   
      7839 KING     PRESIDENT            17-11月-81      5000                    10                                                                   
      7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                                                   
      7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                                                   
      7788 SCOTT    ANALYST         7566 19-4月 -87      3000                    20                                                                   
      7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                                                   
      7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                                                   
      7876 ADAMS    CLERK           7788 23-5月 -87      1100                    20                                                                   
      7369 SMITH    CLERK           7902 17-12月-80       800                    20                                                                   
      7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                                                   
      7499 ALLEN    SALESMAN        7698 20-2月 -81      1600        300         30                                                                   
      7844 TURNER   SALESMAN        7698 08-9月 -81      1500          0         30                                                                   


     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                   
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                                                   
      7654 MARTIN   SALESMAN        7698 28-9月 -81      1250       1400         30                                                                   
      7521 WARD     SALESMAN        7698 22-2月 -81      1250        500         30                                                                   
      7900 JAMES    CLERK           7698 03-12月-81       950                    30                                                                   


已选择 14 行。


SQL> ed
已写入 file afiedt.buf


  1  select *
  2  from emp
  3* order by deptno desc,sal desc
SQL> /


     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                   
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                                                   
      7698 BLAKE    MANAGER         7839 01-5月 -81      2850                    30                                                                   
      7499 ALLEN    SALESMAN        7698 20-2月 -81      1600        300         30                                                                   
      7844 TURNER   SALESMAN        7698 08-9月 -81      1500          0         30                                                                   
      7521 WARD     SALESMAN        7698 22-2月 -81      1250        500         30                                                                   
      7654 MARTIN   SALESMAN        7698 28-9月 -81      1250       1400         30                                                                   
      7900 JAMES    CLERK           7698 03-12月-81       950                    30                                                                   
      7902 FORD     ANALYST         7566 03-12月-81      3000                    20                                                                   
      7788 SCOTT    ANALYST         7566 19-4月 -87      3000                    20                                                                   
      7566 JONES    MANAGER         7839 02-4月 -81      2975                    20                                                                   
      7876 ADAMS    CLERK           7788 23-5月 -87      1100                    20                                                                   
      7369 SMITH    CLERK           7902 17-12月-80       800                    20                                                                   


     EMPNO ENAME    JOB              MGR HIREDATE         SAL       COMM     DEPTNO                                                                   
---------- -------- --------- ---------- -------------- ----- ---------- ----------                                                                   
      7839 KING     PRESIDENT            17-11月-81      5000                    10                                                                   
      7782 CLARK    MANAGER         7839 09-6月 -81      2450                    10                                                                   
      7934 MILLER   CLERK           7782 23-1月 -82      1300                    10                                                                   


已选择 14 行。


SQL> --order by作用于后面所有的列;desc只作用于离他最近的列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值