聚合函數
| 函數 | 說明 |
AVG | 平均值 |
COUNT | 統計記錄筆數 |
MAX | 最大值 |
MIN | 最小值 |
RANGE | 最大值與最小值之差 |
STDEV | 標準差 |
SUM | 求和 |
VARIANCE | 方差(無偏估計),公式:(SUM(xi²) - SUM(xi)²/N) / (N-1) |
日期時間函數
| 函數 | 說明 |
DAY, MDY, MONTH, WEEKDAY, YEAR | 回傳日期元件值 |
CURRENT | 當前日期時間 |
EXTEND | 調整 DATE/DATETIME 精度 |
DATE | 字串轉 DATE,例:DATE('12/7/04') |
TO_CHAR | DATETIME/DATE 轉字串 |
TO_DATE | 字串轉 DATETIME,例:TO_DATE('1978-10-07 10:00', '%Y-%m-%d %H:%M') |
基數與智慧大物件函數(僅 IDS)
| 函數 | 說明 |
CARDINALITY | 集合元素計數 |
FILETOBLOB | 檔案複製到 BLOB 欄位 |
FILETOCLOB | 檔案複製到 CLOB 欄位 |
LOCOPY | BLOB/CLOB 複製到另一 BLOB/CLOB |
LOTOFILE | BLOB/CLOB 複製到檔案 |
字串處理函數
| 函數 | 說明 | 範例 |
LOWER | 大寫轉小寫 | |
UPPER | 小寫轉大寫 | |
INITCAP | 每字首字母大寫 | |
REPLACE | 字串替換 | REPLACE(col, 'each', 'eve') |
SUBSTR | 取子字串 | SUBSTR(col, 1, 2) |
SUBSTRING | 取子字串(SQL 標準) | SUBSTRING(col FROM 1 TO 4) |
LPAD | 左側填充/截斷 | LPAD(col, 21, '_') — col 為 CHAR(15),前加 6 個 _ |
RPAD | 右側填充/截斷 | RPAD(col, 21, '_') — 後加 6 個 _ |
其他常用函數
| 函數 | 說明 | 範例 |
HEX | 十六進位表示 | |
ROUND | 四捨五入 | |
TRUNC | 截斷 | |
LENGTH | 字串長度 | |
USER | 當前登入使用者 | |
TODAY | 當前系統日期 | |
DBSERVERNAME / SITENAME | 資料庫伺服器名稱 | |
DBINFO | 資料庫相關資訊 | |
DECODE | 值轉換(類似 CASE) | DECODE(test, a, a_val, b, b_val, ...),不支援 TEXT/BYTE |
NVL | NULL 替換 | NVL(expr, 'default') |
進階用法
SELECT 中呼叫預存程序
SELECT spl($test) FROM tab_name;
總結
Informix SQL 函數涵蓋聚合、日期時間、大物件、字串、條件邏輯等完整功能集。LPAD/RPAD 適合格式化輸出,DECODE/NVL 是條件邏輯與 NULL 處理利器,智慧大物件函數 則是 BLOB/CLOB 操作核心。實務上建議搭配官方文件確認版本差異(部分函數僅 IDS 支援)。