算術函數支援整數、浮點數、貨幣等數值型別運算,回傳 6 位小數精度。廣泛應用於財務計算、科學計算、統計分析、測試資料生成等場景。
| 類別 | 函數 | 功能 | 範例 |
|---|---|---|---|
| 三角/反三角 | SIN, COS, TAN | 正弦/餘弦/正切 (弧度制) | SIN(PI()/2) = 1 |
| ASIN, ACOS, ATAN | 反正弦/反餘弦/反正切 | ATAN(1) = PI()/4 | |
| COT | 餘切 | COT(PI()/4) = 1 | |
| DEGREES, RADIANS | 弧度↔角度轉換 | DEGREES(PI()) = 180 | |
| PI() | 圓周率常數 | PI() = 3.14159265358979 | |
| 對數/指數 | LOG, LOG10 | 自然對數/常用對數 | LOG(EXP(1)) = 1 |
| EXP | e 的指數冪 | EXP(1) = 2.71828 | |
| POWER(x, y) | x 的 y 次方 | POWER(2, 10) = 1024 | |
| SQRT | 平方根 | SQRT(2) = 1.41421 | |
| 捨入/截斷 | ROUND(x, d[, f]) | 四捨五入到 d 位 (f≠0 為截斷) | ROUND(123.456, 2) = 123.46 |
| CEILING | 大於等於 x 的最小整數 | CEILING(3.14) = 4 | |
| FLOOR | 小於等於 x 的最大整數 | FLOOR(3.14) = 3 | |
| SIGN | 正負號 (-1/0/1) | SIGN(-5) = -1 | |
| ABS | 絕對值 | ABS(-5) = 5 | |
| 隨機數 | RAND([seed]) | 0-1 間偽隨機數,種子固定則序列固定 | RAND(123) 固定序列 |





-- 範例 4-37: 同一運算式組合 SIN, ATAN, RAND, PI, SIGN
SELECT SIN(PI()/4) AS SinVal,
ATAN(1) AS AtanVal,
RAND() AS RandVal,
PI() AS PiVal,
SIGN(-10) AS SignVal;

-- 範例 4-38: CEILING 與 FLOOR 對比
SELECT CEILING(3.14) AS CeilVal, -- 4
FLOOR(3.14) AS FloorVal, -- 3
CEILING(-3.14) AS CeilNeg, -- -3
FLOOR(-3.14) AS FloorNeg; -- -4

-- 範例 4-39: ROUND 四捨五入 vs 截斷
SELECT ROUND(123.4567, 2) AS Round2, -- 123.46
ROUND(123.4567, 2, 1) AS Trunc2, -- 123.45 (第三參數非0為截斷)
ROUND(123.4567, -1) AS RoundNeg1; -- 120.00 (負數為十位捨入)
SQRT(-1)、LOG(0)、ASIN(2) 回傳 NULL 並發出警告,建議用 CASE 預先檢查。DECIMAL(19,4)。RAND() 回傳相同值;需不同值請用 RAND(CHECKSUM(NEWID())) 或 CRYPT_GEN_RANDOM (SQL 2008+)。FLOAT = FLOAT,使用 ABS(a-b) < 0.0001 容差比較。算術函數是資料轉換與計算邏輯的基石,理解其精度特性、定義域限制、隨機數行為,能避免生產環境中的精度遺失與邏輯錯誤。