Sql-Server-2012

ORDER BY 是如何邏輯處理的

  • August 23, 2013

舉個例子:

SELECT SalesOrderID,
      CustomerID,
      SalesPersonID,
      OrderDate
FROM Sales.SalesOrderHeader
ORDER BY OrderDate,
        SalesOrderID DESC
OFFSET 0 ROWS
FETCH NEXT 10 ROWS ONLY;

當指定一列時,我了解 ORDER BY,但是 ORDER BY 子句如何按兩列或三列對錶進行排序?先訂哪一個?如果 SalesOrderID 列中的最大值與 OrderDate 列中的最大值不相關怎麼辦?

想想電話簿的(通常)排序方式。

如果它們是由 SQL 查詢生成的,它將是

ORDER BY LastName ASC,
        FirstName ASC

名稱按LastName第一個順序排列。

第二列僅用於在具有相同姓氏的人群中進行排序。

引用自:https://dba.stackexchange.com/questions/48593