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

    原文地址:https://www.cnblogs.com/liuning8023/p/2601804.html