# sql5 v1.11 版本說明(已完成)
## 版本資訊
- **版本**:1.11
- **日期**:2026-05-03
- **名稱**:進階聚合與數學函式
## 新增功能
### 1. 數學函式
- `ABS(x)` - 絕對值
- `ROUND(x, n)` - 四捨五入
- `RANDOM()` - 隨機數
- `LENGTH(s)` - 字串長度
### 2. 類型轉換
- `CAST(x AS TYPE)` - 類型轉換
- `TYPEOF(x)` - 回傳資料類型
### 3. 字串函式增強
- `UPPER(s)` - 轉大寫
- `LOWER(s)` - 轉小寫
- `TRIM(s)` - 去除空白
- `SUBSTR(s, start, len)` - 子字串
- `REPLACE(s, old, new)` - 替換
### 4. 條件函式
- `IFNULL(x, y)` - 如果 x 為 NULL 回傳 y
- `COALESCE(x, y, ...)` - 回傳第一個非 NULL 值
- `NULLIF(x, y)` - 如果 x=y 回傳 NULL
### 5. 日期時間
- `DATE('now')` - 目前日期
- `TIME('now')` - 目前時間
- `DATETIME('now')` - 目前日期時間
## 使用方式
```sql
-- 數學函式
SELECT ABS(-5);
SELECT ROUND(3.14159, 2);
SELECT RANDOM();
-- 類型轉換
SELECT CAST('123' AS INTEGER);
SELECT TYPEOF(123);
-- 字串函式
SELECT UPPER('hello');
SELECT LENGTH('hello');
SELECT SUBSTR('hello', 2, 3);
SELECT REPLACE('hello', 'l', 'x');
-- 條件函式
SELECT IFNULL(NULL, 'default');
SELECT COALESCE(NULL, NULL, 'value');
SELECT NULLIF(1, 1);
-- 日期時間
SELECT DATE('now');
SELECT DATETIME('now');
```
## 對應 SQLite 相容性
| DDL (CREATE/DROP TABLE) | ✅ 完成 |
| DML (INSERT/UPDATE/DELETE) | ✅ 完成 |
| SELECT with WHERE, JOIN | ✅ 完成 |
| Aggregate | ✅ 完成 |
| Transactions | ✅ 完成 |
| AUTOINCREMENT | ✅ 完成 |
| FOREIGN KEY | ✅ 完成 |
| FTS5 (CJK) | ✅ 完成 |
| CREATE/DROP INDEX | ✅ 完成 (v1.3) |
| PRAGMA | ✅ 完成 (v1.3) |
| ALTER TABLE | ✅ 完成 (v1.3) |
| EXPLAIN | ✅ 完成 (v1.3) |
| WAL Mode | ✅ 完成 (v1.4) |
| CREATE/DROP VIEW | ✅ 完成 (v1.5) |
| REINDEX | ✅ 完成 (v1.5) |
| ANALYZE | ✅ 完成 (v1.5) |
| sqlite_master | ✅ 完成 (v1.6) |
| UNION / UNION ALL | ✅ 完成 (v1.7) |
| 子查詢 | ✅ 完成 (v1.7) |
| COUNT DISTINCT | ✅ 完成 (v1.7) |
| CHECK 約束 | ✅ 完成 (v1.8) |
| GROUP BY / ORDER BY / DISTINCT | ✅ 完成 (v1.10) |
| 多行 INSERT | ✅ 完成 (v1.10) |
| **數學函式** | ✅ 新增 (v1.11) |
| **類型轉換** | ✅ 新增 (v1.11) |
| **字串函式** | ✅ 新增 (v1.11) |
| **條件函式** | ✅ 新增 (v1.11) |
| **日期時間** | ✅ 新增 (v1.11) |
| TRIGGERs | ❌ 待支援 |
| ATTACH | ❌ 待支援 |
| VACUUM | ❌ 待支援 |