ORDER BY column_list [ASC|DESC];預設 ASC。可指定欄位名或位置序號(非負整數)。
SELECT TOP n [PERCENT] ... 依指定筆數或百分比限制結果集。
| 函數 | 用途 | 語法重點 |
|---|---|---|
AVG | 平均值 | AVG([ALL|DISTINCT] expr);DISTINCT 忽略重複值 |
MIN/MAX | 最小/最大值 | 字串型依排序規則比較;不可用於 image/text |
SUM | 總和 | 僅數值型;ALL|DISTINCT |
COUNT | 計數 | COUNT(*) 含 NULL 列;COUNT(expr) 忽略 NULL |
共同特性:除 COUNT(*) 外,皆忽略 NULL。
GROUP BY 依一或多欄位分組,每組產生一列彙總結果。SELECT 清單僅能包含:常數、分組欄位、聚合運算式。HAVING 於分組後過濾,可使用聚合函數;WHERE 於分組前過濾列,不可用聚合函數。text/image 欄位分組或 HAVING。COMPUTE BY 產生兩種結果集:明細列(如 SELECT)與彙總列(如 GROUP BY)。若省略 BY,整張表視為單一群組。使用 BY 時,ORDER BY 必須包含所有分組欄位。
適用於交叉表報表。n 個分組欄位產生 2^n 種彙總組合,提供小計、總計等多層次統計。
| 類型 | 語法 (ANSI-92) | 特性 |
|---|---|---|
| CROSS JOIN | FROM t1 CROSS JOIN t2 | 笛卡兒積,筆數 = t1 筆數 × t2 筆數,慎用 |
| INNER JOIN | FROM t1 INNER JOIN t2 ON t1.col = t2.col | 最常用,僅回傳符合條件的配對列;NULL 不匹配 |
| LEFT OUTER JOIN | FROM t1 LEFT OUTER JOIN t2 ON ... | 保留左表所有列,右表無配對則填 NULL |
| RIGHT OUTER JOIN | FROM t1 RIGHT OUTER JOIN t2 ON ... | 保留右表所有列 |
| FULL OUTER JOIN | FROM t1 FULL OUTER JOIN t2 ON ... | 保留雙表所有列 |
別名:FROM table1 AS a, table2 AS b 簡化欄位引用。
CASE [input_expr]
WHEN when_expr THEN result_expr
[ELSE else_expr]
END
input_expr 時為簡單 CASE(等值比對);無則為搜尋 CASE(布林運算式)。CASE state WHEN 'CA' THEN 'California' WHEN 'KS' THEN 'Kansas' END。UNION 移除重複列;UNION ALL 保留重複。SELECT 欄位數、型別必須相容。GO 非 T-SQL 指令,為 osql/Query Analyzer 工具識別的批次結束標記,將多條陳述式送往伺服器一次執行。