如果需要針對查詢后的結果按照指定的數據列進行排序操作,就必須使用ORDER BY子句。
當使用查詢操作的時候,默認情況下它會按照數據的插入順序進行數據排序顯示。
如果要針對指定的列內容實現排序,就必須采用ORDER BY子句完成。
SELECT [DISTINCT] * | 列名稱 [別名],列名稱 [別名],... FROM 表名稱[別名] [WHERE 過濾條件(s)] [ORDER BY 字段 [ASC | DESC],字段 [ASC | DESC],...];
對於排序的方式有兩種:
1.ASC:默認,不寫也是ASC:按照升序的方式排列;
2.DESC:按照降序的方式排列;
范例:
1)查詢所有的雇員信息,要求按照工資由高到低排序
SQL> SELECT * FROM emp ORDER BY sal DESC;
2)查詢所有銷售人員的信息,要求按照雇佣日期由早到晚排序。
SQL> SELECT * FROM emp WHERE job='SALESMAN' ORDER BY hiredate ASC;
3)要求按照工資由高到低排序,如果工資相同,則按照雇佣日期由早到晚排序
SQL> SELECT * FROM emp ORDER BY sal DESC,hiredate ASC;
4)查詢每個雇員的編號、姓名、年薪,按照年薪由低到高排序。
SQL> SELECT empno,ename,sal*12 income FROM emp ORDER BY income DESC;
此時的程序可以正確調用SELECT定義的別名。在整個SQL查詢結構之中,只有ORDER BY子句可以調用SELECT定義的別名。
總結
1.使用ORDER BY查詢的時候,排序是在最后完成的
2.ORDER BY子句是最后一個執行的子句
3.在ORDER BY之中可以設置多個排序的字段
4.ORDER BY有兩種排序模式:ASC、DESC
5.ORDER BY是唯一一個可以使用SELECT子句定義別名的子句