首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 字串函數完整指南:轉換、修剪、擷取與比較實戰

     編輯:DB2 教學

前言

在 DB2 資料庫開發中,字串處理是日常操作的核心環節。無論是資料清洗、報表產生,還是應用程式邏輯判斷,熟練掌握內建字串函數都能大幅提升 SQL 效率與可讀性。本文系統整理 DB2 常用字串函數,分為字元轉換、去除空白、子串擷取、字串比較四大類,並附上語法與實務注意事項,供開發人員快速查閱。

一、字元轉換函數

1. ASCII() — 取得最左字元的 ASCII 碼

ASCII(char_expr) 回傳字串第一個字元的 ASCII 數值。注意:純數字字串可不加引號,但包含字母或符號時必須用單引號括起,否則會報錯。

2. CHAR() — ASCII 碼轉字元

CHAR(ascii_val) 將 0~255 之間的整數轉為對應字元;超出範圍回傳 NULL。

3. LOWER() / UPPER() — 大小寫轉換

  • LOWER(str):全字串轉小寫
  • UPPER(str):全字串轉大寫

4. STR() — 數值轉字串(可控制長度與小數位)

STR(float_expr [, length [, decimal]])
  • length:回傳字串總長度(預設 10)
  • decimal:小數位數(預設 0)
  • 若 length 或 decimal 為負值 → 回傳 NULL
  • 若 length 小於整數部位(含正負號) → 回傳 * 佔位
  • 先套用 length 再截取 decimal;不足長度左側補空白

二、去除空白函數

  • LTRIM(str):移除字串左側空白
  • RTRIM(str):移除字串右側空白

常搭配使用 LTRIM(RTRIM(str)) 達成雙邊修剪。

三、子串擷取函數

1. LEFT() — 從左擷取指定長度

LEFT(char_expr, integer_expr)

回傳字串最左側 integer_expr 個字元。

2. RIGHT() — 從右擷取指定長度

RIGHT(char_expr, integer_expr)

回傳字串最右側 integer_expr 個字元。

3. SUBSTRING() — 任意位置擷取

SUBSTRING(expr, start_pos, length)

從第 start_pos 個字元(起始為 1)開始,擷取 length 個字元。

四、字串比較與搜尋函數

1. CHARINDEX() — 尋找子串起始位置

CHARINDEX('substring_expr', expr)
  • 回傳 substring_expr 在 expr 中首次出現的位置(1-based)
  • 找不到回傳 0
  • 不支援 TEXT、IMAGE 資料型別

2. PATINDEX() — 支援萬用字元的模式搜尋

PATINDEX('%pattern%', column_name)
  • 模式字串前後必須加 %,否則永遠回傳 0
  • 支援萬用字元(%、_ 等)
  • 適用於 CHAR、VARCHAR、TEXT 型別

小結

熟練運用上述函數,能讓 SQL 查詢更簡潔、效能更佳。建議在實際專案中建立常用函數速查表,並針對大量資料操作時注意索引與執行計畫的影響。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved