SQL Order By


SQL SELECT
SQL DISTINCT
SQL WHERE
SQL AND OR
SQL IN
SQL BETWEEN
SQL 萬用字元
SQL LIKE
SQL ORDER BY
SQL 函數
SQL 平均值
SQL COUNT
SQL 最大值
SQL 最小值
SQL 總合
SQL GROUP BY
SQL HAVING
SQL 別名
SQL AS
SQL 表格連接
SQL 外部連接
SQL CONCATENATE
SQL SUBSTRING
SQL TRIM
SQL 長度
SQL REPLACE



網站導引
其他資源


到目前為止,我們已學到如何藉由 SELECTWHERE 這兩個指令將資料由表格中抓出。 不過我們尚未提到這些資料要如何排列。這其實是一個很重要的問題。事實上,我們經常需要 能夠將抓出的資料做一個有系統的顯示。這可能是由小往大 (ascending) 或是由大往小(descending)。 在這種情況下,我們就可以運用 ORDER BY 這個指令來達到我們的目的。

ORDER BY 的語法如下:

SELECT "欄位名"
FROM "表格名"
[WHERE "條件"]
ORDER BY "欄位名" [ASC, DESC]

[] 代表 WHERE 子句不是一定需要的。 不過,如果 WHERE 子句存在的話,它是在 ORDER BY 子句之前。 ASC 代表結果會以由小往大的順序列出,而 DESC 代表結果會以由大往小的順序列出。 如果兩者皆沒有被寫出的話,那我們就會用 ASC

我們可以照好幾個不同的欄位來排順序。在這個情況下, ORDER BY 子 句的語法如下(假設有兩個欄位):

ORDER BY "欄位一" [ASC, DESC], "欄位二" [ASC, DESC]

若我們對這兩個欄位都選擇由小往大的話,那這個子句就會造成結果是依據 "欄位一" 由小往大排。 若有好幾筆資料 "欄位一" 的值相等,那這幾筆資料就依據 "欄位二" 由小往大排。

舉例來說,若我們要依照 Sales 欄位的由大往小列出 Store_Information 表格中的資料,

Store_Information 表格
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
San Francisco $300 an-08-1999
Boston $700 Jan-08-1999

我們就鍵入,

SELECT store_name, Sales, Date
FROM Store_Information
ORDER BY Sales DESC


結果:

store_name Sales Date
Los Angeles $1500 Jan-05-1999
Boston $700 Jan-08-1999
San Francisco $300 Jan-08-1999
San Diego $250 Jan-07-1999

在以上的例子中,我們用欄位名來指定排列順序的依據。除了欄位名外,我們也可以用欄位的順序 (依據 SQL 句中的順序)。在 SELECT 後的第一個欄位為 1,第二個欄位為 2, 以此類推。在上面這個例子中,我們用以下這句 SQL 可以達到完全一樣的效果:

SELECT store_name, Sales, Date
FROM Store_Information
ORDER BY 2 DESC


下一頁:SQL 函數

網站導引   |   其他資源


Copyright 1999-2009   1keydata.com.   版權所有