Oracle中的数值处理相关函数介绍

本文详细介绍了Oracle数据库中处理数值的函数,包括单值函数如四则运算、NULL处理、NVL、ABS、CEIL、FLOOR、MOD、POWER、SQRT等,以及科学计算相关函数。还探讨了聚集函数在处理NULL值时的行为,如AVG、COUNT、MAX、MIN、SUM,并提到了列表函数的应用。
摘要由CSDN通过智能技术生成

 转载请注明出处:http://blog.csdn.net/anxpp/article/details/51551008,谢谢!


1、概述

    Oracle函数处理三种类型的数值:单值、值组和值列表。

    这些函数跟串函数一样,用来更改数值或者是返回数值相关的信息。

    数值类型区分如下:

  •     单值:只是一个数值,如常数值、PL/SqL等中的变量。数据库的一列和一行的一个数字等。Oracle的单值函数通常通过计算来更改这些值。
  •     值组:一系列数据行中的某一列的所有数值数据。Oracle值组函数提供的是整个组的信息,如求某一列的平均数。
  •     值列表:可能是一列数字,如1、2、3、4.5、PL\SQL等中的变量、或是列中的列值(类型为列表型)。

    函数表示方法:

    FUNCTION(value[,option])

    [表示可选参数]。

    如果一个列值不包含任何值,则此时是NULL而不是0,他是空的,在后面这会对函数造成一定的影响,后面会详细介绍。

    请注意下面很多示例都是用一个常量来演示,实际使用中,直接将其替换为列即可。


2、单值函数

    单值函数一般都比较简单,但是很常用。

    2.1、四则运算

    他们分别是“+”,“-”,“*”,“/”,很简单,大家都会,不多说,看下简单示例:


  
  
  
  1. select 3+2,3-2,3*2,3/2 from users;

    结果很显然:5 1 6 1.5

    2.2、NULL

    我们想将上面的SQL改为与NULL一起运算看下结果如何:


  
  
  
  1. select 3+NULL,3-NULL,3*NULL,3/NULL from users;

    结果将返回:NULL NULL NULL NULL

    对,他们的结果都为空,事实上,任何包含NULLDE算术运算都会得到结果NULL。

    所以,NULL是不同于0的,NULL不应用来计算。

    那么,这也解释了WHERE子句中,不能将NULL与=一起使用:因为如果x=y时,若他们都是NULL,但都是未知的,而实际他们野可能是任何值,使用=是没有意义的。

    2.3、NVL:空值置换

    针对上面的NULL问题,其中一种解决方法就是使用NVL函数。

    语法:

    NVL(value,substitute)

    如果value为NULL,则函数结果为substitute,反之,结果为value。

    虽然值为NULL,是未知的,但很多时候可以作一些合理的假设。比如:某列表示某员工的工资,想要计算整个部门一月需要发多少工资,显然是可以预估的,比如采用平均值,这是就可以将NULL值置换为那个平均值,

    可以看下使用例子:


  
  
  
  1. select nvl(NULL,123),nvl(0,123) from users;

    结果输出:123 0

    NVL的使用不限于数值,他们同样可以适用于其他数据类型,但是要保证value参数和substitute参数类型是相同的。

    NVL2

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值