SQL 標準歷經 SQL-86、SQL-89、SQL-92、SQL:1999、SQL:2003、SQL:2006、SQL:2008、SQL:2011 多次修訂,早已超出多數開發者認知的「核心 92 標準」。自 SQL:1999 起標準大幅膨脹,納入觸發器、遞迴查詢、XML、OLAP 窗口函數、時間序列等特性。本文介紹 SQL:2011 非時間序列部分的關鍵增強,並說明如何取得草案文件。
MERGE INTO target USING source ON ... WHEN MATCHED THEN DELETE ... 允許在合併操作中直接刪除目標表資料,簡化 ETL 邏輯。MERGE 中,可直接從 OLD TABLE/NEW TABLE 進行 SELECT,無需臨時表中轉,提升效能與可讀性。CALL procedure(...) 現在支援更豐富的參數模式(IN/OUT/INOUT)、結果集回傳,並可在 SQL 程式碼中直接呼叫,促進程序化邏輯標準化。WITH RECURSIVE ... 處理階層結構。ROW_NUMBER()、LAG/LEAD、FIRST_VALUE/LAST_VALUE、NTILE 等 OLAP 分析利器。XMLQUERY、XMLTABLE、JSON_TABLE(SQL:2016)。FOR SYSTEM_TIME、FOR BUSINESS_TIME(SQL:2011 時間序列部分)。UNNEST、ARRAY_AGG、MULTISET。MERGE、窗口函數、WITH RECURSIVE),降低遷移成本。SQL 標準雖顯老態,但仍是跨資料庫可移植性的基石,理解其演進有助於寫出更健壯、標準化的 SQL 程式碼。