從基礎四則運算到進階三角函數、對數運算,SQL Server 內建完整的數學函數庫,支援科學計算、財務建模、統計分析等多元場景。
| 分類 | 函數 | 說明 |
|---|---|---|
| 三角函數 | SIN, COS, TAN | 正弦、餘弦、正切(輸入為弧度) |
| COT | 餘切 | |
| ASIN, ACOS, ATAN | 反正弦、反餘弦、反正切 | |
| ATN2(y, x) | 兩參數反正切,返回 -π 到 π 間的角度 | |
| DEGREES | 弧度轉角度 | |
| RADIANS | 角度轉弧度 | |
| 指數與對數 | EXP | e 的指數次方 |
| LOG | 自然對數 (底數 e) | |
| LOG10 | 常用對數 (底數 10) | |
| POWER(x, y) | x 的 y 次方 | |
| 取整與絕對值 | ABS | 絕對值 |
| CEILING | 無條件進位(大於等於的最小整數) | |
| FLOOR | 無條件捨去(小於等於的最大整數) | |
| ROUND(x, length) | 四捨五入至指定小數位 | |
| 根號 | SQRT | 平方根 |
| 符號判斷 | SIGN | 正數回傳 1、零回傳 0、負數回傳 -1 |
| 隨機數 | RAND([seed]) | 0~1 間隨機浮點數,可指定種子 |
| 常數 | PI() | 返回 π (3.141592653589793) |
-- 90 度的正弦值 SELECT SIN(RADIANS(90)) -- 1.0 -- 反正切轉角度 SELECT DEGREES(ATAN(1)) -- 45.0
-- 本金 10000,年利率 5%,投資 10 年 DECLARE @principal DECIMAL(10,2) = 10000 DECLARE @rate DECIMAL(5,4) = 0.05 DECLARE @years INT = 10 SELECT @principal * POWER(1 + @rate, @years) AS future_value -- 結果:16288.95
SELECT
value,
(value - AVG(value) OVER()) / STDEV(value) OVER() AS z_score
FROM measurements
-- 取得 10% 隨機樣本 SELECT * FROM large_table WHERE RAND() < 0.1 -- 固定種子確保可重現 SELECT * FROM large_table WHERE RAND(12345) < 0.1
SELECT
ROUND(123.4567, 2) -- 123.46 (四捨五入)
ROUND(123.4567, -1) -- 120.00 (捨入到十位)
ROUND(123.4567, 0) -- 123.00 (捨入到個位)