在 SQL Server 中,ORDER BY 子句用於依指定順序對查詢結果進行排序。您可以指定一個或多個欄位名稱,或使用非負整數表示欄位位置。預設採用升序(ASC),亦可指定降序(DESC)。
無需 WHERE 子句即可限制結果集列數。TOP 子句支援指定具體列數或百分比,例如 TOP 10 或 TOP 10 PERCENT。
彙總函數可對資料表中的數值進行統計計算。SQL Server 提供以下常用彙總函數:
AVG([ALL | DISTINCT] expression)。DISTINCT 僅計算不重複值。MIN(expression)、MAX(expression)。字串類型時依排序規則比較,不可用於位元資料。SUM([ALL | DISTINCT] expression),僅適用於數值類型。COUNT([ALL | DISTINCT] expression)。COUNT(*) 則計算所有列(含空值)。所有彙總函數均忽略空值,唯有 COUNT(*) 例外。
GROUP BY 依指定欄位將資料分組,並對每組執行彙總計算。選取清單僅能包含常數、分組欄位或彙總運算式。若某欄位同時出現在選取清單與分組欄位外,將導致錯誤。
HAVING 用於在分組後過濾群組條件,語法與 WHERE 相同,但可包含彙總函數。WHERE 在分組前過濾列,HAVING 在分組後過濾群組。兩者可同時使用。
COMPUTE BY 可同時產生詳細記錄與彙總記錄。若省略 BY,視整個資料表為單一群組。使用 BY 時,必須在所有分組欄位上包含 ORDER BY。
CUBE 與 ROLLUP 為 GROUP BY 的擴充,可產生更多彙總組合(n 個分組欄位產生 2^n 種組合),適合交叉表報表。
無條件結合兩表,結果列數為兩表列數乘積,大型資料表慎用。
最常用的連接方式,依連接條件(通常於 WHERE 或 ON 中指定)比對兩表欄位值,僅回傳符合條件的列組合。