首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL 數學函數完整參考:三角、對數、統計運算全掌握

     編輯:關於SqlServer

SQL Server 數學函數系統性整理

從基礎四則運算到進階三角函數、對數運算,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

統計預處理:標準化 (Z-score)

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

ROUND 進階用法

SELECT 
    ROUND(123.4567, 2)   -- 123.46 (四捨五入)
    ROUND(123.4567, -1)  -- 120.00 (捨入到十位)
    ROUND(123.4567, 0)   -- 123.00 (捨入到個位)

常見陷阱提醒

  • 三角函數輸入單位為弧度,非角度,必須配合 RADIANS/DEGREES 轉換
  • LOG 為自然對數,非底數 10,需用 LOG10 取常用對數
  • RAND() 在單一查詢中每行會重新計算,若需固定值請使用變數儲存
  • CEILING/FLOOR 返回數值型別,非整數型別,後續運算需注意
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved