36 SQL 算術函式
阿新 • • 發佈:2020-06-25
1. 前言
解釋:SQL 內建的算術函式主要用於對
數值型別
的欄位進行算數運算
。
本小節,我們將一起學習 SQL 函式中的算術函式。
有時候,我們需要對資料表中的數值欄位進行算術運算,如需要對分數score
取兩位小數等;為此,SQL 提供了方便的算術函式。
本小節測試資料如下,請先在資料庫中執行:
DROP TABLE IF EXISTS imooc_user;
CREATE TABLE imooc_user
(
id int PRIMARY KEY,
username varchar(20),
score float,
age int
);
INSERT INTO imooc_user( id,username,score,age)
VALUES (1,'peter',10.12,18),(2,'pedro',-9.23,24),(3,'jerry',1.27,22);
2. 例項
在 SQL 中,常見的算術函式有三個,它們分別是:
函式名 | 作用 |
---|---|
ABS | 取絕對值 |
MOD | 取餘數,接受兩個引數,第一個為數值,第二個為除數 |
ROUND | 四捨五入,接受兩個引數,第一個為數值,第二個是小數位數 |
2.1 例1 取分數絕對值
在 imooc_user 的使用者中,有的人懶惰且經常逃課,因此其分數是負數,我們可以通過ABS
來得到他分數的絕對值:
SELECT ABS( score) FROM imooc_user WHERE id=2;
結果:
+-------------------+
| ABS(score) |
+-------------------+
| 9.229999542236328 |
+-------------------+
2.2 例2 取年齡的餘數
我們還可以通過MOD
來得到使用者年齡的餘數,如對5
取餘:
SELECT MOD(age,5) FROM imooc_user WHERE id=1;
結果:
+------------+ | MOD(age,5) | +------------+ | 3 | +------------+
2.3 例3 取分數的 1 位小數
我們的分數錄入的時候是2
位小數的,但是我們可能需要1
位的有效小數:
SELECT ROUND(score,1) FROM imooc_user WHERE id=3;
結果:
+----------------+
| ROUND(score,1) |
+----------------+
| 1.3 |
+----------------+
Tips: PostgreSQL 不支援 ROUND 函式。
3. 小結
- 一般而言,數值運算函式用的不多,但是
ROUND
在資料分析的時候還是非常實用的。