SQL语句学习之路3
到目前為止,我們已學到如何藉由 ?SELECT ?及 ?WHERE ? 這兩個指令將資料由表格中抓出。
不過我們尚未提到這些資料要如何排列。這其實是一個很重要的問題。事實上,我們經常需
要能夠將抓出的資料做一個有系統的顯示。這可能是由小往大 ?(ascending) ? ? 或是由大往小
(descending)。在這種情況下,我們就可以運用 ?ORDER BY ?這個指令來達到我們的目的。
ORDER BY 的語法如下: ?
SELECT "欄位名" ?
FROM "表格名" ?
[WHERE "條件"]
ORDER BY "欄位名" [ASC, DESC] ?(DESC 是descend 降序意思
asc 是ascend 升序的意思)
[] ?代表 ?WHERE子句不是一定需要的。不過,如果WHERE子句存在的話,它是在
ORDER BY ?子句之前。 ?ASC ?代表結果會以由小往大的順序列出,而 DESC代表結果會以
由大往小的順序列出。如果兩者皆沒有被寫出的話,那我們就會用ASC。
我們可以照好幾個不同的欄位來排順序。在這個情況下, ORDER BY子句的語法如下(假
設有兩個欄位):
ORDER BY "欄位一" [ASC, DESC], "欄位二" [ASC, DESC]
若我們對這兩個欄位都選擇由小往大的話,那這個子句就會造成結果是依據 "欄位一" ? ? ? ? ? ?由小
往大排。若有好幾筆資料 "欄位一"值相等,那這幾筆資料就依據 ?"欄位二" ? 由小往大排。
舉例來說,若我們要依照 ?Sales ? ? 欄位的由大往小列出 ?Store_Information ?表格中的資料,
Store_Information ?表格
我們就鍵入:
SELECT store name,Sales,Date FROM Store InFormation ORDER BY Sales DESC
//從表格 InFormation 中查找 store name,Sales,Date 然后倒序 Sales
結果:
在以上的例子中,我們用欄位名來指定排列順序的依據。除了欄位名外,我們也可以用欄位
的順序 ?(依據 ?SQL ?句中的順序)。在 ?SELECT ?后的第一個欄位為 ?1,第二個欄位為 ?2,以
此類推。在上面這個例子中,我們用以下這句 ?SQL ?可以達到完全一樣的效果:
SELECT store_name, Sales, Date ?
FROM Store_Information ?
ORDER BY 2 DESC ?
ORDER BY 語句用于對結果集進行排序。
ORDER BY 語句
ORDER BY 語句用于根據指定的列對結果集進行排序。
ORDER BY 語句默認按照升序對記錄進行排序。
如果您希望按照降序對記錄進行排序,可以使用 DESC 關鍵字。
原始的表 (用在例子中的):
Orders 表:
| IBM | 3532 |
| W3School | 2356 |
| Apple | 4698 |
| W3School | 6953 |
實例 1
以字母順序顯示公司名稱:
SELECT Company, OrderNumber FROM Orders ORDER BY Company結果:
| Apple | 4698 |
| IBM | 3532 |
| W3School | 6953 |
| W3School | 2356 |
實例 2
以字母順序顯示公司名稱(Company),并以數字順序顯示順序號(OrderNumber):
SELECT Company, OrderNumber FROM Orders ORDER BY Company, OrderNumber結果:
| Apple | 4698 |
| IBM | 3532 |
| W3School | 2356 |
| W3School | 6953 |
實例 3
以逆字母順序顯示公司名稱:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC結果:
| W3School | 6953 |
| W3School | 2356 |
| IBM | 3532 |
| Apple | 4698 |
實例 4
以逆字母順序顯示公司名稱,并以數字順序顯示順序號:
SELECT Company, OrderNumber FROM Orders ORDER BY Company DESC, OrderNumber ASC結果:
| W3School | 2356 |
| W3School | 6953 |
| IBM | 3532 |
| Apple | 4698 |
注意:在以上的結果中有兩個相等的公司名稱 (W3School)。只有這一次,在第一列中有相同的值時,第二列是以升序排列的。如果第一列中有些值為 nulls 時,情況也是這樣的。
轉載于:https://blog.51cto.com/liuyafang/1400897
總結
以上是生活随笔為你收集整理的SQL语句学习之路3的全部內容,希望文章能夠幫你解決所遇到的問題。