• 【PostgreSQL-9.6.3】函数(1)--数值型函数


    函数表示对输入参数返回一个特殊计算结果的值。PostgreSQL中的函数种类比较丰富,主要分为以下几类:数值型函数、字符型函数、日期和时间函数、条件判断函数、系统函数、加密函数以及其他函数。这篇文章只介绍数学函数,其他几种函数会在后续文章中逐一介绍。

    数学函数

    数学函数主要用来处理数值型数据,主要的数学函数有:绝对值函数、三角函数、对数函数、随机数函数等。

    1. 绝对值函数ABS(A)

    test=# select ABS(-1),ABS(1),ABS(-2.2),ABS(0);
     abs | abs | abs | abs
    -----+-----+-----+-----
       1 |   1 | 2.2 |   0
    (1 row)

    test=#

    2. 返回圆周率函数PI()

    test=# SELECT PI();
            pi        
    ------------------
     3.14159265358979
    (1 row)

    test=#

    3. 平方根函数SQRT(A)

    注意:负数没有平方根

    test=# SELECT SQRT(4),SQRT(20);
     sqrt |       sqrt       
    ------+------------------
        2 | 4.47213595499958
    (1 row)

    test=#

    4. 取余函数MOD(A,B)

    注意:小数取余的原则是,返回值精确到被除数的小数位数,即返回值的小数位数和被除数的小数位数相同。

    test=# SELECT MOD(4,2),MOD(3,2),MOD(3.5,3),MOD(3.55,3);
     mod | mod | mod | mod  
    -----+-----+-----+------
       0 |   1 | 0.5 | 0.55
    (1 row)

    test=#

    5. 取整函数CEIL(A)、CEILING(A)和FLOOR(A)

    CEIL(A)、CEILING(A)返回大于A的最小整数,FLOOR(A)返回小于A的最大整数

    test=# SELECT CEIL(-2.22),CEILING(-2.22),CEIL(2.22),CEILING(2.22),FLOOR(-2.22),FLOOR(2.22);
     ceil | ceiling | ceil | ceiling | floor | floor
    ------+---------+------+---------+-------+-------
       -2 |      -2 |    3 |       3 |    -3 |     2
    (1 row)

    test=#

    6. 四舍五入函数ROUND(A)和ROUND(A,B)

    ROUND(A)对A进行四舍五入,返回最接近A的整数;

    ROUND(A,B)对A进行四舍五入,返回最接近A的数值,结果保留B位。

    注意:在ROUND(A,B)中,当B为负数时,表示保留A值的小数点左边B位,小数点左边的相应位数用‘0’补充。

    test=# SELECT ROUND(-1),ROUND(1),ROUND(-1.65),ROUND(1.65);
     round | round | round | round
    -------+-------+-------+-------
        -1 |     1 |    -2 |     2
    (1 row)

    test=# SELECT ROUND(-1,2),ROUND(1.2345,-2),ROUND(1.2345,2);
     round | round | round
    -------+-------+-------
     -1.00 |     0 |  1.23
    (1 row)

    7. 符号函数SIGN(A)

    返回参数的符号,A的值为负、零或正时,返回结果依次为-1,0,1。

    test=# SELECT SIGN(-10),SIGN(0),SIGN(10);
     sign | sign | sign
    ------+------+------
       -1 |    0 |    1
    (1 row)

    test=#

    8. 幂运算函数POW(A,B)、POWER(A,B)和EXP(A)

    POW(A,B)和POWER(A,B)都返回A的B次方的值;

    EXP(A)返回e的A次方的值。

    test=# SELECT POW(2,2),POWER(2,2),POW(2,-2),POWER(2,-2);
     pow | power | pow  | power
    -----+-------+------+-------
       4 |     4 | 0.25 |  0.25
    (1 row)

    test=#

    9. 对数函数LOG(A)

    返回A的自然对数,A不能为负数。

    test=# SELECT LOG(2);
            log        
    -------------------
     0.301029995663981
    (1 row)

    test=#

    10. 角度和弧度转换函数RADIANS(A)、DEGREES(A)

    RADIANS(A)将角度转换为弧度;

    DEGREES(A)将弧度转换为角度。

    test=# SELECT RADIANS(90),RADIANS(180),DEGREES(PI()),DEGREES(PI()/2);
         radians     |     radians      | degrees | degrees
    -----------------+------------------+---------+---------
     1.5707963267949 | 3.14159265358979 |     180 |      90
    (1 row)

    test=#

    11. 正弦函数SIN(A)和反正弦函数ASIN(A)

    SIN(A)返回A的正弦值,其中A是弧度值;

    ASIN(A)返回A的反正弦值,其中A为-1和1之间的数值。

    SIN(A)和ASIN(A)互为反函数。

    test=# SELECT SIN(1),ASIN(0.841470984807897);
            sin        | asin
    -------------------+------
     0.841470984807897 |    1
    (1 row)

    test=#

     

    12. 余弦函数COS(A)和反余弦函数ACOS(A)

    COS(A)返回A的正弦值,其中A是弧度值;

    ACOS(A)返回A的反正弦值,其中A为-1和1之间的数值。

    COS(A)和ACOS(A)互为反函数。

    test=# SELECT COS(1),ACOS(0.54030230586814);
           cos        | acos
    ------------------+------
     0.54030230586814 |    1
    (1 row)

    test=#

    13. 正切函数TAN(A)、反正切函数ATAN(A)和余切函数COT(A)

    TAN(A)和ATAN(A)互为反函数,TAN(A)和COT(A)互为倒数。

    test=# SELECT TAN(1),ATAN(1.5574077246549),COT(1);
           tan       |       atan        |        cot        
    -----------------+-------------------+-------------------
     1.5574077246549 | 0.999999999999999 | 0.642092615934331
    (1 row)

    test=#


    The End!



  • 相关阅读:
    085 Maximal Rectangle 最大矩形
    084 Largest Rectangle in Histogram 柱状图中最大的矩形
    083 Remove Duplicates from Sorted List 有序链表中删除重复的结点
    082 Remove Duplicates from Sorted List II 有序的链表删除重复的结点 II
    081 Search in Rotated Sorted Array II 搜索旋转排序数组 ||
    080 Remove Duplicates from Sorted Array II 从排序阵列中删除重复 II
    079 Word Search 单词搜索
    078 Subsets 子集
    bzoj2326: [HNOI2011]数学作业
    bzoj2152: 聪聪可可
  • 原文地址:https://www.cnblogs.com/NextAction/p/7366614.html
Copyright © 2020-2023  润新知