跳轉到內容

SQL 方言參考/函式和表示式/數學函式/數值函式

來自 Wikibooks,開放世界中的開放書籍

數值函式

[編輯 | 編輯原始碼]

此頁面包含比較表,這些表可能很大且複雜

雖然以完整狀態檢視它們完全沒問題,但建議您安裝一個比較表擴充套件,以便選擇特定的列來進行比較。

SQL 版本 功能 標準
SQL:2011
DB2 Firebird Ingres Linter MSSQL MySQL
版本 5.x
MonetDB Oracle
版本 11.x
PostgreSQL SQLite Virtuoso
? 絕對值 of x ABS(x) ABS(x) ABS(x) ABS(x) ABS(x) ABS(x) ABS(x) ABS(x) ABS(x) ABS(x) ABS(x) ABS(x)
? 數字 x 的符號 N/A SIGN(x) SIGN(x) SING(x) SIGN(x) SIGN(x) SIGN(x) SIGN(x) SIGN(x) SIGN(x) N/A SIGN(x)
? 模數 (餘數) of MOD(x, y) MOD(x, y) MOD(x, y) MOD(x, y) MOD(x, y) x % y x % y
MOD(x, y)
x % y
MOD(x, y)
MOD(x, y) x % y
MOD(x, y)
x % y MOD(x, y)
? 最小的整數 >= x CEILING(x)
CEIL(x)
CEILING(x)
CEIL(x)
CEILING(x)
CEIL(x)
CEIL(x)
CEILING(x)
CEIL(x) CEILING(x) CEILING(x)
CEIL(x)
CEILING(x)
CEIL(x)
CEIL(x) CEILING(x)
CEIL(x)
N/A CEILING(x)
? 最大的整數 <= x FLOOR(x) FLOOR(x) FLOOR(x) FLOOR(x) FLOOR(x) FLOOR(x) FLOOR(x) FLOOR(x) FLOOR(x) FLOOR(x) N/A FLOOR(x)
? 舍入 x(到 d 位精度) N/A ROUND(x, d) ROUND(x, d) ROUND(x, d) ROUND(x[, d]) ROUND(x[, d]) ROUND(x[, d]) ROUND(x, d) ROUND(x[, d]) ROUND(x[, d]) ROUND(x[, d]) ROUND(x)
? x 截斷到 n 位小數 N/A TRUNCATE(x, n)
TRUNC(x, n)
TRUNC(x[, n]) TRUNCATE(x, n)
TRUNC(x, n)
TRUNC(x[, d]) ROUND(x[, d], 1) TRUNCATE(x[, dn) sys.ms_trunc(x, n) TRUNC TRUNC(x[, y]) N/A N/A
? x 的平方根 () SQRT(x) SQRT(x) SQRT(x) SQRT(x) SQRT(x) SQRT(x) SQRT(x) SQRT(x) SQRT(x) SQRT(x) N/A SQRT(x)
? 指數 of x () EXP(x) EXP(x) EXP(x) EXP(x) EXP(x) EXP(x) EXP(x) EXP(x) EXP(x) EXP(x) N/A EXP(x)
? 冪 () POWER(x, y) POWER(x, y) POWER(x, y) POWER(x, y)
x ** y
POWER(x, y) POWER(x, y) POW(x, y)
POWER(x, y)
POWER(x, y) POWER(x, y) POWER(x, y) N/A POWER(x,y)
? x 的自然對數 LN(x) LN(x) LN(x) LOG(x)
LN(x)
LN(x) LOG(x) LN(x)
LOG(x)
LN(x)
LOG(x)
LN(x) LN(x) N/A LOG(x)
? x 的對數,底數為 b N/A LOG(b, x) LOG(b, x) N/A LOG(b, x) LOG(x, b) LOG(b, x) LOG(b, x) LOG(b, x) LOG(b, x) N/A ?
? 以 10 為底的對數 N/A LOG10(x) LOG10(x) N/A N/A LOG10(x) LOG10(x) LOG10(x) LOG(x) LOG(x) N/A LOG(x)
? 隨機化,將種子設定為 x N/A RAND(x) N/A SET RANDOM_SEED x RAND(x) RAND(x) RAND(x) RAND(x) random()[1] SETSEED(x) N/A RANDOMIZE([x])
? 生成 0 到 1 之間的浮點隨機數 N/A RAND() RAND() RANDOMF() RAND() RAND() RAND() CAST(RAND() as float) / 2147483648 dbms_random.value (返回數字 >= 0 且 < 1)
dbms_random.value(37, 89) (返回一個 >= 37 且 < 89 的隨機數)
RANDOM() RANDOM() (在 −263 和 263 之間) RND()
? 列表 中的最高數字 N/A N/A MAXVALUE(list) ? GREATEST(list) N/A GREATEST(list) GREATEST(a, b) GREATEST(list) GREATEST(list) MAX(list) MAX(list)
? 列表 中的最低數字 N/A N/A MINVALUE(list) ? LEAST(list) N/A LEAST(list) LEAST(a, b) LEAST(list) LEAST(list) MIN(list) MIN(list)
  1. Oracle 中的 random() 函式可以在內建的 DBMS 包 dbms_random 中找到。
華夏公益教科書