Last Updated on 2021-05-15 by Clay
在 SQL 當中,在處理『數值』方面存在著許多非常好用的指令,今天就介紹以下指令:
- ABS(): 計算絕對值
- CEIL(): 無條件進入至整數
- FLOOR(): 無條件捨去至整數
- ROUND(n1, n2): 將 n1 四捨五入至小數第 n2 位
- TRUNCATE(n1, n2): 將 n1 無條件捨去至小數第 n2 位
- MOD(n1, n2): 求 n1 除以 n2 之餘
- POWER(n1, n2): 求 n1 的 n2 次方
- SIGN(): 判斷值的正負
- SQRT(): 返回輸入值的根
那麼以下,我們便實際測試看看這些指令。
事前準備
首先,我們有以下這樣的一張表:
SID | n |
1 | 10 |
2 | 20 |
3 | -5 |
4 | 5.36 |
我們以下都以張表來示範。
ABS
計算出絕對值。
select n, abs(n) from num where n = -5;
Output:
n | abs(n) |
-5 | 5 |
CEIL
無條件進位至整數。
select n, ceil(n) from num where SID = 4;
Output:
n | ceil(n) |
5.36 | 6 |
FLOOR
無條件捨去至整數。
select n, floor(n) from num where SID = 4;
Output:
n | floor(n) |
5.36 | 5 |
ROUND
自行決定四捨五入至小數幾位數。
select n, round(n, 1) from num where SID = 4;
Output:
n | floor(n) |
5.36 | 5.4 |
這裡是自行決定四捨五入至小數第一位。
TRUNCATE
自行決定無條件捨去至小數第幾位。
select n, truncate(n, 1) from num where SID = 4;
Output:
n | truncate(n) |
5.36 | 5.3 |
這裡是自行決定無條件至小數第一位。
MOD
求餘數。
select n, mod(n, 3) from num where n = 10;
Output:
n | mod(n) |
10 | 1 |
10 除以 3 餘 1。
POWER
求數值的次方。
select n, power(n, 2) from num where n = 10;
Output:
n | power(n) |
10 | 100 |
SIGN
判斷正負。
select n, sign(n) from num where n = -5;
Output:
n | sign(n) |
-5 | -1 |
-5 為負數。
SQRT
求根。
select n, sqrt(n) from num where n = 10;
Output:
n | sqrt(n) |
10 | 3.1622776601683795 |
常用的數值 function 差不多就以上這幾種,若是熟練掌握以後,想必對於查找、顯示數值會有很大的幫助。