| 分類 | 函數 | 用途 |
|---|---|---|
| 搜尋/取代 | REPLACE | 取代子字串 |
| STUFF | 刪除並插入 (指定位置/長度) | |
| TRANSLATE (2017+) | 單字元對應取代 | |
| 擷取/截取 | SUBSTRING | 依位置/長度擷取 |
| LEFT / RIGHT | 取左/右 N 字元 | |
| CHARINDEX / PATINDEX | 尋找子字串/模式位置 | |
| PARSENAME | 解析點號分隔名稱 (伺服器.資料庫.結構.物件) | |
| 大小寫/修飾 | UPPER / LOWER | 大/小寫轉換 |
| LTRIM / RTRIM / TRIM (2017+) | 移除前導/尾隨/雙側空白 | |
| QUOTENAME | 加上分隔符 `[]` 或 `''`,防 SQL Injection | |
| 長度/度量 | LEN / DATALENGTH | 字元數 / 位元組數 |
| REPLICATE | 重複字串 N 次 | |
| SPACE | 產生 N 個空白 | |
| 編碼/比較 | ASCII / UNICODE / NCHAR / CHAR | 字元碼轉換 |
| SOUNDEX / DIFFERENCE | 發音相似度比對 (英文) | |
| 反轉 | REVERSE | 字串反序 |
| 串連 | + / CONCAT (2012+) / CONCAT_WS (2017+) | 字串合併 (自動處理 NULL) |
SELECT REPLACE('lihan', 'a', 'b'); -- lihbn
SELECT SUBSTRING('lihan', 1, 3); -- lih (起始位置 1,長度 3)
SELECT CHARINDEX('a', 'lihan'); -- 4
SELECT ASCII('lihan'); -- 108 (l)
SELECT NCHAR(3213); -- 顯示對應 Unicode 字元
SELECT SOUNDEX('lihan'), SOUNDEX('lihon'); -- L546, L542
SELECT CHAR(125); -- }
SELECT STR(12345, 3); -- *** (寬度不足) SELECT STR(12345, 12); -- 12345
SELECT DIFFERENCE('lihan', 'liha'); -- 3
SELECT STUFF('lihan', 2, 3, 'lihan'); -- llihann (位置2刪3字元,插入lihan)
SELECT LEFT('lihan', 4); -- liha
SELECT RIGHT('lihan', 4); --ihan
SELECT REPLICATE('lihan', 4); -- lihanlihanlihanlihan
SELECT LEN('lihan'); -- 5
SELECT LEN('lihan '); -- 5 (DATALENGTH 會算空白)
SELECT REVERSE('lihan'); -- nahil
SELECT LOWER(UPPER('lihan')); -- lihan
SELECT LTRIM(' lihan '); -- lihan
SELECT RTRIM(' lihan '); -- lihan
SELECT TRIM(' lihan '); -- lihan (SQL 2017+)
熟練這 17 個函數涵蓋 90% 字串處理需求。新版本 (2016/2017/2022) 引入 `STRING_SPLIT`、`TRIM`、`CONCAT_WS`、`TRANSLATE`、`STRING_AGG` 大幅簡化常見作業,升級後請優先使用。