資料庫不在乎逗號前置還是後置,但開發者需要清晰的結構來保證結果正確、易於除錯、維護。本文分享實戰驗證的格式化原則。


-- 基準:客戶總數(無 JOIN,無干擾) SELECT COUNT(DISTINCT cust_id) AS count_customers FROM customers; -- 結果:10 → 後續所有查詢的客戶數必須等於 10
SELECT
0, -- 佔位符,方便註解首欄
c.cust_post_code,
p.location,
COUNT(DISTINCT c.cust_id) AS number_customers,
SUM(s.total_amount) AS total_sales
FROM customers c
JOIN post_codes p ON c.cust_post_code = p.post_code
JOIN sales s ON c.cust_id = s.cust_id
WHERE 1=1
AND s.sales_date BETWEEN '2015-01-01' AND '2015-01-31'
-- AND s.order_id = 5
GROUP BY
c.cust_post_code,
p.location;
防止未來加入同名欄位導致歧義錯誤。
註解任一欄位時,無需調整其他行的逗號。適用於 SELECT 清單與 GROUP BY。
開發階段置頂,上線前刪除。配合逗號前置,首欄也能輕鬆註解。
批次註解/取消註解多行欄位、GROUP BY 欄位、建立索引清單時極致高效。

SELECT
0,
c.cust_post_code,
--,p.location,
COUNT(DISTINCT c.cust_id) AS number_customers,
SUM(s.total_amount) AS total_sales
FROM customers c
-- LEFT OUTER JOIN post_codes p ON c.cust_post_code = p.post_code
JOIN sales s ON c.cust_id = s.cust_id
WHERE 1=1
AND s.sales_date BETWEEN '2015-01-01' AND '2015-01-31'
-- AND c.cust_post_code = 2000
-- AND p.post_code = 200
GROUP BY
c.cust_post_code
--,p.location;
透過逐步加入/移除 JOIN 與欄位,持續對照基準查詢結果(客戶數=10),確保每一步邏輯正確。
好的 SQL 格式不是為了好看,是為了可驗證、可除錯、可維護。建立基準查詢、逗號前置、JOIN 獨立行、善用欄模式編輯,這套工作流能顯著降低錯誤率並提升開發速度。