zoukankan      html  css  js  c++  java
  • Oracle 11g Release 1 (11.1) 单行函数——数字函数

    http://docs.oracle.com/cd/B28359_01/server.111/b28286/functions001.htm#i88893

    本文内容

    • 单行函数
    • 数字函数
    • 演示数字函数

    单行函数


    单行函数用于查询表或视图的每个行返回一个结果行。单行函数可以用在 select 列表、WHERE 子句、START WITHCONNECT BY 子句,以及 HAVING 子句。

    单行函数包括:

    • 数字函数
    • 字符函数
    • NLS 字符函数
    • 日期函数
    • 比较函数
    • 转换函数
    • 大对象函数
    • 集合函数
    • 层级函数
    • 数据挖据函数
    • XML 函数
    • 编码和解码函数
    • NULL 相关函数
    • 环境和标识函数

    除了单行函数,还有聚合函数、分析函数(Analytic Functions)、对象引用函数(Object Reference Functions)和模型函数(Model Functions)。

    本文主要说明 Oracle 11g Release 1 (11.1) 数字函数。

    数字函数


    数字函数接受数字输入,并返回数字值。

    • 大多数返回 NUMBER 值的数字函数,精确到 38 位十进制数字。
    • 超越函数,如 COSCOSHEXPLNLOGSINSINHSQRTTANTANH 精确到 36 位十进制。
    • ACOSASINATANATAN2,这些超越函数精确到 30 位十进制。

    函数如下表所示。

    函数

    描述

    ABS(n)

    返回 n 的绝对值。n 为任何数字类型,或可以被隐式转换成数字类型的非数字类型。

    COS(n)

    ACOS(n)

    COSH(n)

    • COS 返回 n 的余弦

    • ACOS 返回 n 的反余弦。n 取值范围 [-1,1],返回值在 [0,pi]

    • COSH 返回 n 的双曲余弦

    SIN(n)

    ASIN(n)

    SINH(n)

    • SIN 正弦

    • ASIN 返回 n 的反正弦。n 取值范围 [-1,1],返回值在 [-pi/2,pi/2]

    • SINH 双曲正弦

    TAN(n)

    ATAN(n)

    ATAN2(n1,n2)

    TANH(n)

    • TAN 正切

    • ATAN 返回 n 的反正切。n 值任意,返回值 [-pi/2,pi/2]

    • ATAN2 等价于 ATAN(n1/n2)

    • TANH 双曲正切

    BITAND(exp1,exp2)

    根据表达式的二进制,按位取与

    CEIL(n)

    FLOOR(n)

    ROUND(n)

    ROUND(n, integer)

    TRUNC (n1)

    TRUNC (n1,n2)

    • CEIL 向上取整。返回 n 最大的整数

    • FLOOR 向下取整。返回 n 最小的整数

    • ROUND 四则五入

    • TRUNC 截取

    EXP(n)

    POWER(n2,n1)

    • EXP 返回以 e 为底的指数。其中,e 为 2.71828183...。返回类型与 n 相同

    • POWER 指数。n2 的 n1 次幂。n2 和 n1 为任意数字,若 n2 是负数,则 n1 必须是整数

    LN(n)

    LOG(n2,n1)

    • LN 自然对数。返回以 e底 n 的对数。n 取值范围大于 0

    • LOG 对数。返回以 n2 为底 n1 的对数。n1 为任何非0或1的正数,n2 为任何正数

    MOD(n2,n1)

    模。n2 除以 n1 的余数。若 n1 为0,则返回 n2。

    NANVL(n2,n1)

    该函数仅对 BINARY_FLOATBINARY_DOUBLE 类型的浮点数有用。它指示 Oracle 数据库,若 n2 是 NaN(非数字),则返回 n1。若 n2 不是 NaN,则返回 n2。

    REMAINDER(n2,n1)

    返回 n2 除以 n1 的余数

    SIGN(n)

    返回 n 的符号。

    对于 NUMBER 类型,符号为:

    • 若 n<0,则为 -1

    • 若 n=0,则为 0

    • 若 n>0,则为 1

    对于 BINARY_FLOATBINARY_DOUBLE,符号为:

    • 若 n<0,则为 -1

    • 若 n>=0 或 n=NaN,则为 +1

    SQRT(n)

    平方根

    WIDTH_BUCKET(

    expr,

    min_value,

    max_value,

    num_buckets)

    该函数让你构造等宽直方图,直方图的范围被划分成相同大小的间隔。而 NTILE 函数创建等高直方图。理想的情况下,每个桶是一个实数线的封闭开区间。例如,一个桶可以被分配到 10.00 和 19.999...... 之间,记做 [10,20)。

    演示数字函数


    示例 1:演示 BITAND 函数。

    SQL> SELECT BITAND(6, 3) as "Decimal BITAND",
      2         BITAND(BIN_TO_NUM(1, 1, 0), BIN_TO_NUM(0, 1, 1)) as "Binary BITAND"
      3    FROM DUAL;
     
    Decimal BITAND Binary BITAND
    -------------- -------------
                 2             2
     
    SQL>

    示例 2:演示 NANVL 函数。

    先创建相关表 float_point_deom,并插入两条数据。如下所示:

    CREATE TABLE float_point_demo
      (dec_num NUMBER(10,2), bin_double BINARY_DOUBLE, bin_float BINARY_FLOAT);
     
    INSERT INTO float_point_demo VALUES (1234.56, 1234.56, 1234.56);
     
    Insert INTO float_point_demo VALUES (0, 'NaN', 'NaN');
     
    SELECT * FROM float_point_demo;
     
       DEC_NUM BIN_DOUBLE  BIN_FLOAT
    ---------- ---------- ----------
       1234.56 1.235E+003 1.235E+003
             0        Nan        Nan

    最后演示 NANVL 函数。如下所示:

    SQL> SELECT bin_float, NANVL(bin_float,0)
      2  FROM float_point_demo;
     
     BIN_FLOAT NANVL(BIN_FLOAT,0)
    ---------- ------------------
    1.235E+003         1.235E+003
           Nan                  0
     
    SQL>

    示例 3:演示 REMAINDER 函数。在示例 2 中创建的表 float_point_demo 基础上演示 REMAINDER 函数。

    SQL> SELECT bin_float, bin_double, REMAINDER(bin_float, bin_double)
      2  FROM float_point_demo;
     
     BIN_FLOAT BIN_DOUBLE REMAINDER(BIN_FLOAT,BIN_DOUBLE)
    ---------- ---------- -------------------------------
    1.235E+003 1.235E+003                      5.859E-005
     
    SQL>

    示例 4:演示 SIGN 函数。

    SQL> SELECT SIGN(-15), SIGN(0), SIGN(15) FROM DUAL;
     
     SIGN(-15)    SIGN(0)   SIGN(15)
    ---------- ---------- ----------
            -1          0          1
     
    SQL>

    示例 5:演示 WIDTH_BUCKET 函数。

    SQL> SELECT customer_id, cust_last_name, credit_limit, 
      2  WIDTH_BUCKET(credit_limit, 100, 5000, 10) "Credit Group"
      3  FROM customers WHERE nls_territory = 'SWITZERLAND'
      4  ORDER BY "Credit Group", customer_id, cust_last_name, credit_limit;
     
    CUSTOMER_ID CUST_LAST_NAME       CREDIT_LIMIT Credit Group
    ----------- -------------------- ------------ ------------
            825 Dreyfuss                      500            1
            826 Barkin                        500            1
            827 Siegel                        500            1
            853 Palin                         400            1
            843 Oates                         700            2
            844 Julius                        700            2
            835 Eastwood                     1200            3
            836 Berenger                     1200            3
            837 Stanton                      1200            3
            840 Elliott                      1400            3
            841 Boyer                        1400            3
            842 Stern                        1400            3
            848 Olmos                        1800            4
            849 Kaurusmdki                   1800            4
            828 Minnelli                     2300            5
            829 Hunter                       2300            5
            850 Finney                       2300            5
            851 Brown                        2300            5
            852 Tanner                       2300            5
            830 Dutt                         3500            7
            831 Bel Geddes                   3500            7
            832 Spacek                       3500            7
            833 Moranis                      3500            7
            834 Idle                         3500            7
            838 Nicholson                    3500            7
            839 Johnson                      3500            7
            845 Fawcett                      5000           11
            846 Brando                       5000           11
            847 Streep                       5000           11
     
    SQL>

    术语英文

    以下英文可以帮助阅读英文资料。

      • 单行函数 - Single-row functions

      • 聚合函数 - Aggregate Functions

      • 超越函数 - transcendental functions

      • 绝对值 - absolute value

      • 余弦 - cosine

      • 反余弦 - arc cosine

      • 双曲余弦 - hyperbolic cosine

      • 正弦 - sine

      • 反正弦 - arc sine

      • 双曲正弦 - hyperbolic sine

      • 正切 - tangent

      • 反正切 - arc tangent

      • 双曲正切 - hyperbolic tangent

      • 指数 – exponent

      • e 的 n 次幂 - e raised to the nth power

      • 自然对数 - natural logarithm

      • 对数 – logarithm

      • 对数的底 - base

      • 余数 - remainder

      • 平方根 - square root

      • 负数/正数 - negative/postive

      • 除 - divide

    • 相关阅读:
      ionic localstorage
      angular 中文鏈接
      把jqmobi 變成jQuery 的插件 從此使用jQuery
      jqmobi 的一些設置
      ionic ngcordova map 地圖
      ionic pull to refresh 下拉更新頁面
      json 對象的序列化
      鍵盤彈出,頁面佈局被推上去了.....
      Cordova V3.0.0中config.xml配置文件的iOS Configuration
      android ios 只能輸入數字 不能輸入小數點的 函數 cordova
    • 原文地址:https://www.cnblogs.com/liuning8023/p/2601804.html
    Copyright © 2011-2022 走看看