前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于null的操作

关于null的操作

作者头像
郑小超.
发布2018-01-26 10:24:24
7140
发布2018-01-26 10:24:24
举报
文章被收录于专栏:GreenLeavesGreenLeaves

空值

    空值一般用NULL表示

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

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

    空不与任何值相等

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

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

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

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

 空值作逻辑运算时:

    AND运算:

代码语言:js
复制
    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运算:

代码语言:js
复制
    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运算:

代码语言:js
复制
       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。

演示:

代码语言:javascript
复制
Create Table Test6(
       id varchar2(30),
       name varchar2(30),
       age number(2),
       sex varchar2(2)
)

建表语句

结果集

1、nvl函数

代码语言:javascript
复制
select id,name,nvl(TO_CHAR(age),'未录入'),nvl(TO_CHAR(sex),'未录入') from Test6

2、nvl2函数

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

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

代码语言:javascript
复制
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。

3、NULLIF函数

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

  作用:当表达式1的值等于表达式2的值,返回空.如果表达式1的值不等于表达式2的值,返回表达式1的值

这个函数相当于CASE  WHEN 表达式1=表达式2 THEN NULL ELSE 表达式1 END

代码语言:javascript
复制
select ID,name,NULLIF(TO_CHAR(SEX),'0') MAN from  Test6

上面这段SQL的作用是,当SEX为0时(这里代表女性),返回NULL。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档