總結
在這個模組中,你學習了進階的 T-SQL 技術,幫助你撰寫更具表現力、更有效率且易於維護的資料庫程式碼。 這些能力涵蓋常見的資料庫開發情境,涉及複雜分析、階層資料、JSON 處理及錯誤處理。
您已學到如何做到以下幾點:
- 撰寫通用資料表表達式(CTE),用於組織複雜查詢並利用遞迴模式遍歷階層資料結構
- 應用視窗函數來排序、累計、移動平均及分析計算,以保留列級細節
- 使用 JSON
JSON_OBJECT函式,包括 、JSON_ARRAY、JSON_ARRAYAGG、OPENJSON,JSON_VALUE來解析、建構及轉換 JSON 資料 - 實作帶有
REGEXP_LIKE、REGEXP_REPLACE、REGEXP_SUBSTR及相關函式的正則表達式,用於模式匹配與文字操作 - 使用模糊字串函數,如
EDIT_DISTANCE、EDIT_DISTANCE_SIMILARITY和JARO_WINKLER_DISTANCE,尋找近似匹配。 - 建立圖表並使用
MATCH運算子SHORTEST_PATH撰寫查詢,進行關係遍歷 - 撰寫相關子查詢,用於逐列比較、存在性檢查及每列計算
- 實作結構化錯誤處理,包含
TRY...CATCH、 錯誤函數 、THROW及適當的交易管理
重點摘要
- 遞迴CTE是遍歷階層資料(如組織架構圖或物料清單結構)的標準方法
- 帶有
OVER子句的視窗函式使得分析計算在不摺疊列的情況下進行。 使用它們代替自我聯結來計算累計總和和排名 -
JSON_OBJECT並JSON_ARRAYAGG從關聯資料構建 JSON,同時OPENJSON將 JSON 解析成關聯列 -
JARO_WINKLER_DISTANCE已針對名稱匹配進行最佳化;EDIT_DISTANCE_SIMILARITY在較長的字串上運作效果更佳 - 在
CATCH區塊中,務必在ROLLBACK之前檢查@@TRANCOUNT,以處理沒有使用中交易的情況。 - 將
SET XACT_ABORT ON和TRY...CATCH結合即可獲得完整的交易保護