空值

空值一般用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。

oracle 中关于null的操作的更多相关文章

  1. oracle 中proc和oci操作对缓存不同处理

    oracle 中proc和oci操作对缓存不同处理

  2. Oracle中的NULL、’’(空字符串)以及’_’(空格)

    本文首发于 http://youngzy.com/ 在Oracle中使用 null,''(空字符串),'_'(空格)时,有没有遇到问题?产生疑惑? null和’’(空字符串)是一个意思 注: 为了便于 ...

  3. 【转】oracle中的NULL、''(空字符串)以及'_'(空格)

    在Oracle中使用null,''(空字符串),'_'(空格)时,有没有遇到问题?产生疑惑? 1.NULL和''(空字符串)是一个意思 注:为了便于区分空字符串和空格,下面的示例均以'_'代表空格. ...

  4. oracle中的层级递归查询操作

    oracle中的层级操作非常方便,在使用之后爱不释手,以前要实现该种数据查询操作,需要非常复杂的实现过程.在oracle中通过connect by可以实现前面的目的,通常情况下层级查询基本都能实现递归 ...

  5. oracle 中的null与''

    1.先看看Null与''在oracle中的表现 C:\Users\zen>sqlplus hr/hr SQL Production :: Copyright (c) , , Oracle. Al ...

  6. Oracle中的null与空字符串''的区别

    含义解释:问:什么是NULL?答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零.ORACLE允许任何一种数据类型的字段为空,除了以下 ...

  7. Oracle中的null

    测试数据:公司部分员工基本信息

  8. 对oracle中date/timestamp的操作

    设置oracle中date的会话格式为 'yyyy-mm-dd hh24:mi:ss' alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss ...

  9. Oracle中日期时间的操作比较和加减-入门基础(转)

    Oracle关于时间/日期的操作     1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate - interval '7' MINUTE from dual ...

随机推荐

  1. 编写高质量代码改善C#程序的157个建议——建议124:考虑在命名空间中使用复数

    建议124:考虑在命名空间中使用复数 如果有一组功能相近的类型被分到了同一个命名空间想,可以考虑为命名空间使用复数. 最典型的例子有,在FCL中,我们需要把所有的非泛型集合类集中在一起存放,所以就有了 ...

  2. java 基础语言: 方法

    方法 格式: 修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2, ...) { 方法体; return 返回值; } 方法使用的注意事项: 1,方法不调用,自己不执行 2,方法中不 ...

  3. ArcGIS Server

    在ubuntu下安装 10.2 首先修改 /etc/security/limits.conf 添加 kun soft nofile 65535 kun hard nofile 65535 kun so ...

  4. linux 系统启动

    系统启动流程 BIOS 我们称之为基本输入输出系统,一般保存在主板上的BIOS芯片中,负责检查硬件并且查找可启动设备:可设置启动顺序: 如果一个设备是可启动,那么第一个扇区512字节的最后两字节是55 ...

  5. Android-ListView-(BaseAdapter初步)

    在Android中就提供了专门列表显示条目的控件,ListView控件,ListView控件不是一次性加载全部数据,他是只加载用户在屏幕看得到的数据,当用户滑动的过程中在去加载新的数据,同时会自动销毁 ...

  6. 基于Struts2开发快递收发系统 毕业设计 源码

    基于Struts2开发快递收发系统 开发环境:  Windows操作系统 开发工具:Eclipse/MyEclipse+Jdk+Tomcat6+MySql数据库 运行效果图: 此源码经过详细测试 保证 ...

  7. Verilog MIPS32 CPU(四)-- RAM

    Verilog MIPS32 CPU(一)-- PC寄存器 Verilog MIPS32 CPU(二)-- Regfiles Verilog MIPS32 CPU(三)-- ALU Verilog M ...

  8. SystemID

    A:BJQUANYONG-B:CCC332322987612323008002DDD A:JHDUJIA-B:CCC1365323754641263423809708001DDD A:GUANGZHO ...

  9. 解决Android手机 屏幕横竖屏切换

    Android中当屏幕横竖屏切换时,Activity的生命周期是重新加载(说明当前的Activity给销毁了,但又重新执行加载),怎么使屏幕横竖屏切换时,当前的Activity不销毁呢? 1. 在An ...

  10. “全栈2019”Java第八十一章:外部类能否访问嵌套接口里的成员?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...