| 函數 | 說明 | 範例 |
|---|---|---|
| ABS / ABSVAL | 絕對值 | ABS(-3.4) → 3.4 |
| ACOS | 反余弦 (弧度) | ACOS(0.9) |
| ASIN | 反正弦 (弧度) | ASIN(0.9) |
| ATAN | 反正切 (弧度) | ATAN(0.9) |
| ATAN2(y, x) | 座標 (x,y) 反正切 | ATAN2(0.5, 0.9) |
| CEILING / CEIL | 大於等於參數的最小整數 | CEILING(3.56) → 4 |
| FLOOR | 小於等於參數的最大整數 | FLOOR(88.93) → 88 |
| ROUND(exp, n) | 四捨五入至小數點後 n 位 | ROUND(2345.6789, 2) → 2345.68 |
| TRUNCATE / TRUNC(exp, n) | 截斷至小數點後 n 位 | TRUNCATE(345.6789, 2) → 345.67 |
| SQRT | 平方根 | SQRT(36) → 6 |
| POWER(base, exp) | 冪函數 | POWER(2, 5) → 32 |
| MOD(m, n) | 餘數 | MOD(20, 8) → 4 |
| RAND() | 0~1 隨機浮點數 | RAND() |
| EXP | 指數函數 e^x | EXP(2) |
| LOG / LN | 自然對數 | LOG(10) |
| LOG10 | 以 10 為底對數 | LOG10(100) → 2 |
| SIGN | 正負號 (-1/0/1) | SIGN(-5) → -1 |
| 函數 | 說明 | 範例 |
|---|---|---|
| BIGINT | 轉 64 位整數 | BIGINT('123') |
| CHAR(value, format?) | 轉字串 (日期/數值可指定格式) | CHAR(SALARY, ','), CHAR(CURRENT DATE) |
| VARCHAR(len) | 轉變長字串 | VARCHAR(EMP_NAM, 50) |
| DOUBLE | 轉雙精度浮點數 | DOUBLE('5678') |
| REAL | 轉單精度浮點數 | REAL(10) |
| FLOAT | 轉浮點數 (同 DOUBLE) | FLOAT(789) |
| DECIMAL(p, s) | 轉定點數 | DECIMAL(123.456, 5, 2) |
| INTEGER / INT | 轉 32 位整數 | INT('100') |
| SMALLINT | 轉 16 位整數 | SMALLINT('10') |
| HEX | 轉 16 進位字串 | HEX(16) → '10' |
| CAST(expr AS type) | 標準 SQL 轉型 | CAST(CURRENT TIME AS CHAR(8)) |
| 函數 | 說明 | 範例 |
|---|---|---|
| CONCAT(s1, s2) / s1 || s2 | 字串連接 | CONCAT(EMP_NO, EMP_NAM) |
| SUBSTR(str, start, len?) | 子字串 (1-based) | SUBSTR('ABCDEF', 3, 2) → 'CD' |
| LOCATE(find, in) | 尋找子字串位置 (1-based, 0=不存在) | LOCATE('y', 'dfdasfay') → 8 |
| POSSTR(source, target) | 同 LOCATE 參數順序相反 | POSSTR('ABCDEFGH', 'D') → 4 |
| LTRIM / RTRIM / TRIM | 移除左/右/兩側空格 | LTRIM(' ABC') → 'ABC' |
| UPPER / UCASE | 轉大寫 | UPPER('abc') → 'ABC' |
| LOWER / LCASE | 轉小寫 | LOWER('ABC') → 'abc' |
| REPLACE(src, old, new) | 替換所有出現 | REPLACE('ROMANDD', 'NDD', 'CCB') |
| REPEAT(str, n) | 重複 n 次 | REPEAT('AB', 3) → 'ABABAB' |
| SPACE(n) | 產生 n 個空格 | SPACE(5) |
| LENGTH | 字串長度 (位元組) | LENGTH('ABC') → 3 |
| CHAR_LENGTH | 字元數 | CHAR_LENGTH('中文') → 2 |
| CHR / CHAR(code) | ASCII 碼轉字元 | CHR(65) → 'A' |
| ASCII(str) | 首字元 ASCII 碼 | ASCII('A') → 65 |
| HEX | 轉 16 進位 | HEX(255) → 'FF' |
| 函數 | 說明 | 範例 |
|---|---|---|
| YEAR(dt) | 年份 | YEAR('2003/01/02') → 2003 |
| MONTH(dt) | 月份 | MONTH('2003/10/20') → 10 |
| DAY(dt) / DAYOFMONTH | 日期 | DAY('2003-10-20') → 20 |
| HOUR(tm) | 小時 | HOUR('18:34:23') → 18 |
| MINUTE(tm) | 分鐘 | MINUTE('18:34:23') → 34 |
| SECOND(tm) | 秒 | SECOND('18:34:32') → 32 |
| MICROSECOND(ts) | 微秒 | MICROSECOND('2001-03-19.12.30.123456') → 123456 |
| DATE(dt) | 取日期部分 | DATE('2001-03-19.12.30.123456') → 2001-03-19 |
| TIME(tm) | 取時間部分 | TIME('2001-03-19.12.30.123456') → 12.30.12 |
| TIMESTAMP(dt, tm) | 合併日期時間 | TIMESTAMP('2003-10-20', '18:34:23') |
| CURRENT DATE / TIME / TIMESTAMP | 系統當前值 | CURRENT TIMESTAMP |
| DAYS(dt) | 從 0001-01-01 起算天數 | DAYS('2001-06-05') - DAYS('2001-04-01') → 日期差 |
| DATEADD / TIMESTAMPADD | 日期/時間加減 | DATEADD(DAY, 10, CURRENT DATE) |
| DATEDIFF / TIMESTAMPDIFF | 日期/時間差 | DATEDIFF(DAY, '2003-01-01', '2003-12-31') |
| 函數 | 說明 |
|---|---|
| AVG | 平均值 |
| COUNT / COUNT(*) | 筆數 / 非空值筆數 |
| SUM | 總和 |
| MAX / MIN | 最大/最小值 |
| STDDEV | 標準差 |
| VARIANCE / VAR | 變異數 |
| CORRELATION / CORR | 相關係數 |
| COVARIANCE / COVAR | 共變異數 |
| 函數 | 說明 | 範例 |
|---|---|---|
| COALESCE(v1, v2, ...) | 回傳第一個非 NULL 值 | COALESCE(MGRNO, 'ABSENT') |
| NULLIF(e1, e2) | 相等回傳 NULL,否則回傳 e1 | NULLIF(A, B) |
| CASE WHEN ... THEN ... ELSE ... END | 條件運算 (類 Oracle DECODE) | CASE A1 WHEN '1' THEN 'N1' ELSE 'N3' END |
| NODENUMBER(row) | 資料分區節點號 | NODENUMBER(EMP_NO) |
YYYY-MM-DD、HH:MM:SS、YYYY-MM-DD-HH.MM.SS。LENGTH vs CHAR_LENGTH。DB2 SQL Reference Volume 1。本表僅列常用項目。