• MySQL中的数值函数


    加减乘除(+、-、*、/)均可用于数值计算。

    SELECT (1 + 1) / (1 * 2.2 - 3)
    

    执行算术函数

    单参数数值函数举例:
    acos(x), asin(x), atan(x), cos(x), cot(x), exp(x), ln(x), sin(x), sqrt(x), tan(x)

    mod()函数:求模操作。

    mysql> SELECT MOD(10, 4);
    +------------+
    | MOD(10, 4) |
    +------------+
    |          2 |
    +------------+
    1 row in set (0.00 sec)
    

    mod()函数主要用于整数,但是MySQL还可以用它来处理实数:

    mysql> SELECT MOD(10.3, 4);
    +--------------+
    | MOD(10.3, 4) |
    +--------------+
    |          2.3 |
    +--------------+
    1 row in set (0.00 sec)
    

    pow():求幂操作。

    mysql> SELECT POW(2,8);
    +----------+
    | POW(2,8) |
    +----------+
    |      256 |
    +----------+
    1 row in set (0.07 sec)
    

    ceil()函数向上截取整数;floor()函数向下截取整数。

    mysql> SELECT CEIL(121.22), FLOOR(321.233);
    +--------------+----------------+
    | CEIL(121.22) | FLOOR(321.233) |
    +--------------+----------------+
    |          122 |            321 |
    +--------------+----------------+
    1 row in set (0.00 sec)
    

    round()函数:四舍五入。

    mysql> SELECT ROUND(23.4), ROUND(1.34567, 3);
    +-------------+-------------------+
    | ROUND(23.4) | ROUND(1.34567, 3) |
    +-------------+-------------------+
    |          23 |             1.346 |
    +-------------+-------------------+
    1 row in set (0.00 sec)
    

    truncate()函数:去掉不需要的小数位。

    mysql> SELECT TRUNCATE(12.4567,1);
    +---------------------+
    | TRUNCATE(12.4567,1) |
    +---------------------+
    |                12.4 |
    +---------------------+
    1 row in set (0.00 sec)
    

    truncate()和round()函数都可以为第二个参数指定一个负数,表是小数点左侧需要被截取或取整多少位:

    mysql> SELECT ROUND(17, -1), TRUNCATE(17,-1);
    +---------------+-----------------+
    | ROUND(17, -1) | TRUNCATE(17,-1) |
    +---------------+-----------------+
    |            20 |              10 |
    +---------------+-----------------+
    1 row in set (0.00 sec)
    

    处理有符号数

    sign()函数:在参数小于0时返回-1,在参数为0时返回0,在参数大于0时返回1;
    abs()函数:返回参数的绝对值。

    SELECT account_id, SIGN(avail_balance), ABS(avail_balance) 
    FROM account;
    
  • 相关阅读:
    剑指offer:复杂链表的复制
    剑值offer:最小的k个数
    剑指offer:第一个只出现一次的字符
    剑指offer:树的子结构
    leetcode 240搜索二维矩阵
    leetcode 22括号生成
    leetcode 79 单词搜索
    leetcode 17电话号码的字母组合
    leetcode 78子集
    leetcode 105从前序与中序遍历序列构造二叉树
  • 原文地址:https://www.cnblogs.com/zifeiy/p/8817618.html
Copyright © 2020-2023  润新知