SQL數據的排序

SQL 數據的排序

當我們數據返回查詢結果後,默認的情況下是按照我們的僱員編號排序的,當然,現在也可以使用"ORACLE BY" 子句指定所需要的排序的操作列,且這時候SQL語法如下:

SELECT [DISTINCT] * | 字段 [別名] [別名]]
FROM 表名稱 [別名]
[WHERE 條件(S)]
[ORDER BY 字段 [ASC | DESC] [字段 [ASC | DESC],....]];

注意:ORDER BY 子句是寫在所以SQL語句最後的內容,且排序分爲:

1)排序的時候可以指定多個排序的字段;
2)排序的方式有2種:升序【ASC】,默認也是升序(不寫也是升序)。
    降序【DESC】用戶由大到小。

例子:查詢所有僱員的信息,要求按照僱員工資排序,如果沒有提到按照升序或降序排序結果如下:

SQL> SELECT employee_id,first_name,salary FROM employees ORDER BY salary;

EMPLOYEE_ID FIRST_NAME               SALARY
----------- -------------------- ----------
        132 TJ                         2100
        136 Hazel                      2200
        128 Steven                     2200
        127 James                      2400
        135 Ki                         2400
        191 Randall                    2500
        119 Karen                      2500
        140 Joshua                     2500
        144 Peter                      2500
        182 Martha                     2500
        131 James                      2500

EMPLOYEE_ID FIRST_NAME               SALARY
----------- -------------------- ----------
        198 Donald                     2600
        199 Douglas                    2600
        118 Guy                        2600
        143 Randall                    2600
        126 Irene                      2700
        139 John                       2700
        117 Sigal                      2800
        183 Girard                     2800
        130 Mozhe                      2800
        195 Vance                      2800
        116 Shelli                     2900

注意:加上ASC,也是同上。

例子:進行降序排列

SQL>
SQL> SELECT employee_id,first_name,salary FROM employees ORDER BY salary desc;

EMPLOYEE_ID FIRST_NAME               SALARY
----------- -------------------- ----------
        100 Steven                    24000
        101 Neena                     17000
        102 Lex                       17000
        145 John                      14000
        146 Karen                     13500
        201 Michael                   13000
        205 Shelley                   12000
        108 Nancy                     12000
        147 Alberto                   12000
        168 Lisa                      11500
        148 Gerald                    11000

EMPLOYEE_ID FIRST_NAME               SALARY
----------- -------------------- ----------
        174 Ellen                     11000
        114 Den                       11000
        162 Clara                     10500
        149 Eleni                     10500
        169 Harrison                  10000
        156 Janette                   10000
        150 Peter                     10000
        204 Hermann                   10000
        170 Tayler                     9600
        151 David                      9500
        157 Patrick                    9500

例子:查詢出所有的僱員信息,按照工資由高到低排序,如果工資相同,則按照僱傭日期由早到晚排序,此時肯定需要兩個字段排序:1)工資【DESC】、2)僱傭日期【ASC】


SQL> SELECT employee_id,first_name,salary,hire_date FROM employees ORDER BY salary DESC,hire_date ASC;

EMPLOYEE_ID FIRST_NAME               SALARY HIRE_DATE
----------- -------------------- ---------- ------------------
        100 Steven                    24000 17-JUN-87
        101 Neena                     17000 21-SEP-89
        102 Lex                       17000 13-JAN-93
        145 John                      14000 01-OCT-96
        146 Karen                     13500 05-JAN-97
        201 Michael                   13000 17-FEB-96
        205 Shelley                   12000 07-JUN-94
        108 Nancy                     12000 17-AUG-94
        147 Alberto                   12000 10-MAR-97
        168 Lisa                      11500 11-MAR-97
        114 Den                       11000 07-DEC-94

EMPLOYEE_ID FIRST_NAME               SALARY HIRE_DATE
----------- -------------------- ---------- ------------------
        174 Ellen                     11000 11-MAY-96
        148 Gerald                    11000 15-OCT-99
        162 Clara                     10500 11-NOV-97
        149 Eleni                     10500 29-JAN-00
        204 Hermann                   10000 07-JUN-94
        156 Janette                   10000 30-JAN-96
        150 Peter                     10000 30-JAN-97
        169 Harrison                  10000 23-MAR-98
        170 Tayler                     9600 24-JAN-98
        157 Patrick                    9500 04-MAR-96
        151 David                      9500 24-MAR-97

注意:對於排序操作一定要記住ORDER BY子句是寫在所有SQL語句的最後部分。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章