承接上一篇,本文繼續整理 DB2 中常用的字串操作函數,涵蓋字串插入、查找、重複、替換、空白產生與子字串擷取等實務操作,並附上語法說明與範例,供開發人員快速查閱。
語法: CONCAT(ARG1, ARG2)
說明: 將兩個字串引數串接為一個字串並返回。等同於使用 || 運算子。
範例:
SELECT CONCAT(FIRST_NAME, LAST_NAME) FROM T1;
語法: INSERT(ARG1, POS, SIZE, ARG2)
說明: 在字串 ARG1 的第 POS 位置起,刪除 SIZE 個字元,並將 ARG2 插入該位置。若 POS 超出長度或 SIZE 為 0,行為需實測確認。
語法: LOCATE(ARG1, ARG2 [, POS])
說明: 在字串 ARG2 中查找 ARG1 第一次出現的位置(從 1 起算)。可選參數 POS 指定起始搜尋位置。找不到時返回 0。
範例:
SELECT LOCATE('a', NAME) FROM T1;
語法: POSSTR(EXP1, EXP2)
說明: 返回 EXP2 在 EXP1 中第一次出現的位置。注意參數順序與 LOCATE 相反:POSSTR(被搜尋字串, 搜尋目標)。
範例:
SELECT POSSTR(NAME, 'a') FROM T1;
語法: REPEAT(ARG1, NUM_TIMES)
說明: 返回將字串 ARG1 重複 NUM_TIMES 次後的結果。
範例:
SELECT REPEAT(NAME, 2) FROM T1;
語法: REPLACE(EXP1, EXP2, EXP3)
說明: 在字串 EXP1 中,將所有出現的 EXP2 替換為 EXP3。
範例:
SELECT REPLACE('ROMANND', 'NND', 'CCB') FROM SYSIBM.SYSDUMMY1;
語法: SPACE(SIZE)
說明: 返回包含指定數量空白字元的字串,常用於格式化輸出。
範例:
SELECT SPACE(10) FROM SYSIBM.SYSDUMMY1;
語法: SUBSTR(ARG1, POS [, LENGTH])
說明: 從字串 ARG1 的第 POS 位置開始,擷取長度為 LENGTH 的子字串。若省略 LENGTH,則擷取至字串結尾。位置從 1 起算。
範例:
SELECT SUBSTR('CDNJFDJFJD', 5, 2) FROM SYSIBM.SYSDUMMY1; -- 返回 'FD'
掌握這些字串函數,能大幅簡化 SQL 查詢中的資料清洗、格式化與轉換邏輯。實務上建議搭配 SYSIBM.SYSDUMMY1 做快速驗證,再套用至正式資料表。