首页 > 数据库 > 数据库开发技术 > 五种主流数据库:常用数值函数
| 数值函数 | 函数功能 | MySQL | Oracle | SQL Server | PostgreSQL | SQLite |
|---|---|---|---|---|---|---|
| ABS(x) | 计算x的绝对值 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| CEILING(x) | 返回大于或等于x的最小整数 | ✔️ | CEIL(x) | ✔️ | ✔️ | CEIL(x) |
| FLOOR(x) | 返回小于或等于x的最大整数 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| MOD(x, y) | 计算x除以y的余数 | ✔️ | ✔️ | x % y | ✔️ | x % y |
| ROUND(x, n) | 将x四舍五入到n位小数 | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
| RANDOM() | 返回一个伪随机数 | RAND() | DBMS_RANDOM | RAND() | ✔️ | ✔️ |
SELECT ABS(-1), ABS(1), ABS(0)
FROM employee
WHERE emp_id = 1;
ABS(-1)|ABS(1)|ABS(0)
-------|------|------
1| 1| 0
SELECT CEIL(-2), CEILING(-2), FLOOR(4.5)
FROM employee
WHERE emp_id = 1;
CEIL(-2)|CEILING(-2)|FLOOR(4.5)
--------|-----------|----------
-2| -2| 4
SELECT ROUND(9.456, 1), ROUND(9.456)
FROM employee
WHERE emp_id = 1;
ROUND(9.456, 1)|ROUND(9.456)
---------------|------------
9.5| 9
-- Oracle、MySQL 以及 PostgreSQL
SELECT MOD(5,3)
FROM employee
WHERE emp_id = 1;
MOD(5,3)
--------
2
-- Microsoft SQL Server、MySQL、PostgreSQL 以及 SQLite
SELECT 5 % 3
FROM employee
WHERE emp_id = 1;
-- MySQL 和 Microsoft SQL Server
SELECT RAND()
FROM employee
WHERE emp_id <= 3;
RAND()
-------------------
0.12597889371773124
0.6288336549222783
0.7662316241918427
RAND()
-------------------
0.47224141500963573
0.47224141500963573
0.47224141500963573
-- MySQL 和 Microsoft SQL Server
SELECT RAND(1);
-- Oracle
SELECT DBMS_RANDOM.VALUE
FROM employee
WHERE emp_id <= 3;
VALUE
----------------------------------------
0.18048925385153716390255039523196767411
0.3353631757935088547857071602303392595
0.3412188906823928592522036537134902456
-- PostgreSQL
SELECT RANDOM()
FROM employee
WHERE emp_id <= 3;
random
------------------
0.1523788485137807
0.2580784959938427
0.0528612944722024
-- PostgreSQL
SELECT SETSEED(0);
SELECT RANDOM();
-- SQLite
SELECT RANDOM()
FROM employee
WHERE emp_id <= 3;
RANDOM()
--------------------
3344080139226703236
-4444734262945592004
8384000175497818543
原文作者:SQL编程思想;如有侵权,请联系管理员删除。