空值

空值一般用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. [Erlang06]在Erlang shell怎么在目录A下编译目录B下的文件,并把生成文件统一放置目录C?

    问题描述: 我们想快速测试一个小功能,第一个反应就是打开Erl shell 直接输入,但是当想测试一个复杂的函数时,一般会写成一个*.erl文件,然后在shell下: cd(FileDir). c(F ...

  2. (zxing.net)一维码Code 39的简介、实现与解码

    一.简介 一维码Code 39:由于编制简单.能够对任意长度的数据进行编码.支持设备广泛等特性而被广泛采用. Code 39码特点: 能够对任意长度的数据进行编码,其局限在于印刷品的长度和条码阅读器的 ...

  3. redis内网无法连接的问题

    1.修改redis服务器的配置文件 vi redis.conf 注释以下绑定的主机地址 # bind 127.0.0.1 2.修改redis服务器的参数配置 修改redis的守护进程为no ,不启用 ...

  4. Nginx自定义扩展模块

    1. 概述 参考 Nginx开发HTTP模块入门 2. 扩展模块(假设根目录名称为nginx) nginx/configure文件中可以修改配置文件路径(编译时使用): 例如像把配置文件从默认的ngi ...

  5. MFC学习(二):消息映射

    1. 消息映射表的组成 宏DECLARE_MESSAGE_MAP,用在类的声明中,用来声明消息映射表. 宏BEGIN_MESSAGE_MAP,在使用类声明外,用来定义链接节点和填写链表节点中的数据,其 ...

  6. C语言程序设计

    从 大一下 开始写博客,记录自己的学习. 而作为一个强迫症(比如我)是不允许做事缺头少尾的. 想了想还是得大一所学的C语言也搬上来,虽然结构老师经常嘲讽 (也不算嘲讽,算是絮叨吧)我的C语言,但是我还 ...

  7. 二十六、Nodejs 操作 MongoDb 数据库

    一. 在 Nodejs 中使用 Mongodb 前面的课程我们讲了用命令操作 MongoDB,这里我们看下如何用 nodejs 来操作数据库需要引包: npm install mongodb --sa ...

  8. 201621123012《Java程序设计》第12次学习总结

    作业12-流与文件 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 面向系统综合设计-图书馆管理系统或购物车 使用流与文件改造你的图书馆管理系统或购物车 ...

  9. git 分支同步master最新代码

    查看分支:git branch创建分支:git branch <name>切换分支:git checkout <name>创建+切换分支:git checkout -b < ...

  10. 在linux 创建网络会话和绑定两块网卡

    1. 如果我们在公司网络中要手动指定网络的IP地址,当我们回到家里则是使用DHCP(动态主机配置协议)自动分配IP地址.这就有点麻烦了,因为要频繁的修改IP地址,所以接下来我们来创建网络会话----- ...