• oracle 中关于null的操作


    空值

        空值一般用NULL表示

        一般表示未知的、不确定的值,也不是空格

        一般运算符与其进行运算时,都会为空

        空不与任何值相等

     

        表示某个列为空用:IS NULL  不能使用COMM=NULL这种形式

        某个列不为空:IS NOT NULL 不能使用COMM != NULL 这种形式

     

        空值在作升序排列时,空值会放到最后。

        相反作降序排列时,空值会放在最前。

     

     空值作逻辑运算时:

        AND运算:

        F AND F =F       F AND T =F       F AND NULL =F

        T AND F =F       T AND T =T       T AND NULL IS NULL

        NULL AND F =F    NULL AND T IS NULL   NULL AND NULL IS NULL

     

        就是说AND的优先级是:F ->NULL ->T

     

     

        OR运算:

        T OR T =T     T OR F =T     T OR NULL =T

        F OR T =T     F OR F =F     F OR NULL IS NULL

        NULL OR T =T  NULL OR F IS NULL NULL OR NULL IS NULL

     

        OR运算优先级:T ->NULL ->F

     

     

        NOT运算:

           NOT T =F

           NOT F =T

           NOT NULL IS NULL

     

     与空值相关的函数:

        NVL 函数

           格式:NVL(表达式1,表达式2)

           作用:测试表达式的值,如果表达式1为空,则返回表达式2的值;不为空,返回表达式1的值。

     

        NVL2   函数

           格式:NVL2(表达式1,表达式2,表达式3)

           作用:测试表达式的值,表达式1不为空,返回表达式2的值,如果为空,则返回表达式3的值。

     

     

        NULLIF  相等为空

           格式:NULLIF (表达式1,表达式2)

           作用:比较表达式1和表达式2的值,如果两个相等则返回为空,否则返回表达式1的值。

     

        COALESCE    找非空

           格式:COALESCE (表达式1,表达式2,表达式3,...,表达式n)

           作用:返回第一个不为空的值,如果所有的都为空,则返回NULL。

     

    演示:

    Create Table Test6(
           id varchar2(30),
           name varchar2(30),
           age number(2),
           sex varchar2(2)
    )

    建表语句

    结果集

    1、nvl函数

    select id,name,nvl(TO_CHAR(age),'未录入'),nvl(TO_CHAR(sex),'未录入') from Test6

    2、nvl2函数

           格式:NVL2(表达式1,表达式2,表达式3)

           作用:测试表达式的值,表达式1不为空,返回表达式2的值,如果表达式1不为空,则返回表达式3的值。

    select id,name,NVL2(TO_CHAR(age),2*(age+sex),age) AS othesr from Test6;

    运算方式和?:运算规则一致当TO_ChAR(age)不为空(true)时,执行2*(age+sex),否则就执行后面的表达式age

    注意:NULL和任何数进行算数操作,其返回值都是NULL。

     

     

  • 相关阅读:
    滑雪,不亦乐乎
    quant
    分享:Comment Remover 0003 发布
    shit 牛人要么出国了,要么在出国的路上
    linux目录跳转快捷方式——z武器
    迷你双核RK3066 安卓4.1智能网络高清TV 安卓播放器MK802III淘宝网
    分享:每天40分钟家务
    Marios Hadjieleftheriou/Frequent Items: Evaluation Source Code
    urllib2源码解读四(用opener打开你的url)
    分享:Editra 0.7.20 发布,跨平台文本编辑器
  • 原文地址:https://www.cnblogs.com/GreenLeaves/p/6542598.html
Copyright © 2020-2023  润新知