資料查詢是 SQL 開發的核心技能。本文從基礎查詢延伸至進階技巧,涵蓋欄位重命名、常數欄位、TOP 百分比查詢、去重複、聚合函數、BETWEEN 篩選、UNION 結果集合併與 ORDER BY 進階排序,附完整範例碼供參考。
SELECT name AS '姓名' FROM 表名;
SELECT 是否 = '是' FROM 表名;
-- 取前 20% 筆資料
SELECT TOP 20 PERCENT * FROM 表名;
SELECT DISTINCT 欄位名 FROM 表名;
常用聚合函數:MAX、AVG、COUNT、MIN、SUM。
單一結果集回傳多個聚合值:
SELECT
最大年齡 = (SELECT MAX(age) FROM 表名),
最小年齡 = (SELECT MIN(age) FROM 表名);
SELECT * FROM 表 WHERE 欄位 BETWEEN 5 AND 6;
UNION 可將兩個結果集垂直合併,並自動去除重複列(UNION ALL 保留重複)。
SELECT
CONVERT(VARCHAR(10), [age]) AS 年齡,
SUM([salary]) AS 薪資
FROM 員工表
GROUP BY age
UNION
SELECT
'總計' AS 年齡,
SUM(salary) AS 薪資
FROM 員工表;
關鍵限制: 兩個結果集的欄位數量、順序與資料型別必須對應。範例中將 age 轉為 VARCHAR,以符合 '總計' 字串型別。
ORDER BY 不僅支援單一欄位,也支援運算式排序:
SELECT *
FROM 表
ORDER BY (age + salary) / 2.0 DESC;
UNION ALL,避免去重複的排序開銷。TOP N PERCENT 適合抽樣分析,但不保證確切筆數。靈活運用這些查詢技巧,能以更少的程式碼完成複雜的資料轉換與報表需求。