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語句的最後部分。
當我們數據返回查詢結果後,默認的情況下是按照我們的僱員編號排序的,當然,現在也可以使用"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語句的最後部分。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.