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

SQL Server 入門教學(三):資料排序、分組彙總與多表連接查詢

     編輯:關於SqlServer

資料排序:ORDER BY 子句

在 SQL Server 中,ORDER BY 子句用於依指定順序對查詢結果進行排序。您可以指定一個或多個欄位名稱,或使用非負整數表示欄位位置。預設採用升序(ASC),亦可指定降序(DESC)。

限制回傳列數:TOP 子句

無需 WHERE 子句即可限制結果集列數。TOP 子句支援指定具體列數或百分比,例如 TOP 10 或 TOP 10 PERCENT。

資料分組與彙總函數

彙總函數可對資料表中的數值進行統計計算。SQL Server 提供以下常用彙總函數:

  • AVG:計算平均值,語法 AVG([ALL | DISTINCT] expression)。DISTINCT 僅計算不重複值。
  • MIN / MAX:分別尋找最小值與最大值,語法 MIN(expression)、MAX(expression)。字串類型時依排序規則比較,不可用於位元資料。
  • SUM:計算總和,語法 SUM([ALL | DISTINCT] expression),僅適用於數值類型。
  • COUNT:計算非空值個數,語法 COUNT([ALL | DISTINCT] expression)。COUNT(*) 則計算所有列(含空值)。

所有彙總函數均忽略空值,唯有 COUNT(*) 例外。

GROUP BY 子句

GROUP BY 依指定欄位將資料分組,並對每組執行彙總計算。選取清單僅能包含常數、分組欄位或彙總運算式。若某欄位同時出現在選取清單與分組欄位外,將導致錯誤。

HAVING 子句

HAVING 用於在分組後過濾群組條件,語法與 WHERE 相同,但可包含彙總函數。WHERE 在分組前過濾列,HAVING 在分組後過濾群組。兩者可同時使用。

COMPUTE BY 子句

COMPUTE BY 可同時產生詳細記錄與彙總記錄。若省略 BY,視整個資料表為單一群組。使用 BY 時,必須在所有分組欄位上包含 ORDER BY。

CUBE 與 ROLLUP 操作

CUBE 與 ROLLUP 為 GROUP BY 的擴充,可產生更多彙總組合(n 個分組欄位產生 2^n 種組合),適合交叉表報表。

多表資料存取:連接查詢

1. CROSS JOIN(笛卡兒積)

無條件結合兩表,結果列數為兩表列數乘積,大型資料表慎用。

2. INNER JOIN(內部連接)

最常用的連接方式,依連接條件(通常於 WHERE 或 ON 中指定)比對兩表欄位值,僅回傳符合條件的列組合。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved