3.1排序數據(ORDER BY)
下面的 SQL 語句返回某個數據庫表的單個列。觀察其輸出,并沒有特定的順序。
SELECT PRod_nameFROM Products;
【提示】關系數據庫設計理論認為,如果不明確規定排序順序,則不應該假定檢索出的數據的順序有任何意義。 為了明確檢索的數據順序,可用ORDER BY 子句取一個或多個列的名字,據此對輸出進行排序.
SELECT prod_nameFROM ProductsORDER BY prod_name;-- 分析:跟上一條語句不同的地方在于,只不過對 prod_name 列以字母順序進行數據排列
3.2 按多個列排序
要按多個列排序,簡單指定列名,列名之間用逗號分開
下面的代碼檢索 3 個列,并按其中兩個列對結果進行排序 -- 先按價格,然后按名稱排序
SELECT prod_id, prod_price, prod_nameFROM ProductsORDER BY prod_price, prod_name;
3.3 按列位置排序(使用數字)
除了能用列名指出排序順序外,ORDER BY 還支持按相對列位置進行排序。
SELECT prod_id, prod_price, prod_nameFROM ProductsORDER BY 2, 3;-- 這里的輸出與上面的查詢相同。2 指 prod_price,3 指 prod_name
3.4 指定排序方向(ASC,DESC)
數據排序默認是升序(ASC)排列,可以指定 DESC 關鍵字對它進行降序排序。
SELECT prod_id, prod_price, prod_nameFROM ProductsORDER BY prod_price DESC-- DESC 關鍵字只應用到直接位于其前面的列名。
如果打算用多個列排序,該怎么辦?
下面的例子以降序排序產品(最貴的在最前面),再加上產品名:
SELECT prod_id, prod_price, prod_nameFROM ProductsORDER BY prod_price DESC, prod_name-- 分析:DESC 關鍵字只應用到直接位于其前面的列名。
【注意】如果想在多個列上進行降序排序,必須對每一列指定 DESC 關鍵字
續集:
SQLServer:《SQL必知必會》一書的讀書筆記(二)
SQLServer:《SQL必知必會》一書的讀書筆記(四)
新聞熱點
疑難解答