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

SQL Server ORDER BY 多欄位排序語法速查:升冪、降冪任意組合

     編輯:關於SqlServer

語法規則

ORDER BY 依序套用每個排序鍵,前一鍵值相同才比較下一鍵。每鍵可獨立指定 ASC(預設,遞增)或 DESC(遞減)。

四種常見組合

-- 1. 兩欄皆升冪
ORDER BY col1, col2;
-- 等同於
ORDER BY col1 ASC, col2 ASC;

-- 2. 第一欄升冪、第二欄降冪
ORDER BY col1, col2 DESC;
-- 等同於
ORDER BY col1 ASC, col2 DESC;

-- 3. 第一欄降冪、第二欄升冪
ORDER BY col1 DESC, col2;
-- 等同於
ORDER BY col1 DESC, col2 ASC;

-- 4. 兩欄皆降冪
ORDER BY col1 DESC, col2 DESC;

實務範例

-- 員工:依部門代碼升冪,同部門內依薪資降冪
SELECT empid, deptid, salary
FROM HR.Employees
ORDER BY deptid ASC, salary DESC;

注意事項

  • ASC/DESC 僅作用於緊鄰的前一欄位,不會「繼承」給後續欄位。
  • 搭配 TOP/OFFSET-FETCH 時,ORDER BY 決定哪幾列被選取,順序務必確定。
  • NULL 排序:ASC 時 NULL 在前,DESC 時在後(SQL Server 預設行為)。
  • 運算式排序:ORDER BY YEAR(hiredate), MONTH(hiredate) 合法,但無法使用索引,大量資料建議改用計算欄位+索引。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved