Oracle开发中遇到的非空问题小结

来源:互联网 发布:德国关税的算法 编辑:程序博客网 时间:2024/05/23 13:04

Oracle开发中遇到的非空问题小结

今日在使用oracle开发过程中遇到的一个小的问题,由于之前开发人员代码中的疏忽,在记录日志的时候,因为我们是调不同的运营商的接口,不同的运营商回调我们系统的接口,貌似不同运营商回调的接口是不同开发人员开发的,导致有一个记录字段有的存储了,有的没有存储,昨天在做报表的时候,要过滤掉某个运营商的信息,还好那个运营商的信息存储了,信息存储的变量值为0,所以我就使用oracle的判断条件某某字段不等于0,但是在发现结果的时候,数据量少的可怜,后来百度了一下,才发现oracle中如果字段为空的话的,数据库自动会帮你转换为0,所以那些没有存储上的字段在查询的时候都被数据库自动转换为0了,后来使用了oracle的一个函数解决了以上问题。

NVL函数的介绍

  1. 函数格式:NVL(expr1,expr2)

    介绍:如果第一个参数为空,那么则显示第二个参数的值,如果第一个参数不为空,则显示第一个参数本来的值。

另外在找到NVL函数的时候发现了他的延伸函数

NVL2函数的介绍

  1. 函数格式:NVL(expr1,expr2)

    介绍:如果第一个参数为空,那么则显示第二个参数的值,如果第一个参数不为空,则显示第三个参数的值。

    NULLIF函数的介绍

  2. 函数格式:NULLIF(exp1,expr2)

    介绍:如果exp1和exp2相等则返回空(NULL),否则返回第一个值。

Coalesce函数

  1. 函数格式:Coalesce(expr1, expr2, expr3….. exprn)

    介绍:表示可以指定多个表达式的占位符。所有表达式必须是相同类型,或者可以隐性转换为相同的类型。返回表达式中第一个非空表达式,

0 0