首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL ORDER BY 子句完整教學:排序語法、範例與實務技巧

     編輯:關於SqlServer

基本語法

SELECT columns
FROM tables
WHERE predicates
ORDER BY column [ASC | DESC];
  • 僅能用於 SELECT 陳述式
  • 預設 ASC(升序),DESC 為降序
  • 可指定多欄位排序,依序為主、次排序鍵

範例示範

範例 1:單欄位升序

SELECT supplier_city
FROM supplier
WHERE supplier_name = 'IBM'
ORDER BY supplier_city;

以供應商城市升序回傳所有記錄。

範例 2:單欄位降序

SELECT supplier_city
FROM supplier
WHERE supplier_name = 'IBM'
ORDER BY supplier_city DESC;

範例 3:使用結果集相對位置排序

SELECT supplier_city
FROM supplier
WHERE supplier_name = 'IBM'
ORDER BY 1 DESC;

結果集第 1 個欄位即 supplier_city,效果同上。不建議常用,易因 SELECT 清單變更導致錯誤。

範例 4:多欄位混合排序

SELECT supplier_city, supplier_state
FROM supplier
WHERE supplier_name = 'IBM'
ORDER BY supplier_city DESC, supplier_state ASC;

主要依城市降序,次要依州別升序。

進階技巧

  • NULL 排序:SQL Server 預設 NULL 排在最前,可用 ORDER BY CASE WHEN col IS NULL THEN 1 ELSE 0 END, col 控制
  • 自訂排序:ORDER BY CASE status WHEN 'urgent' THEN 1 WHEN 'normal' THEN 2 ELSE 3 END
  • 分頁搭配:配合 OFFSET ... FETCH(SQL Server 2012+)實現高效分頁

效能提示

  • 排序欄位建立索引可避免 Sort 運算子
  • 大量資料排序前先用 WHERE 過濾減少資料量
  • 避免在 ORDER BY 使用函數或運算式,導致索引失效
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved