空值

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

3、NULLIF函数

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

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

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

select ID,name,NULLIF(TO_CHAR(SEX),'') MAN from  Test6

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

最新文章

  1. hdu3714 三分找最值
  2. python起的 simpleHTTPServer服务传输文件
  3. Beta版本冲刺——day2
  4. ehcache报错
  5. c# webbrowser 随机点击链接
  6. 查看 AndroidManifest.xml文件
  7. CSS介绍
  8. English Learn
  9. Solaris 11 system package 安装与更新(如:assembler)
  10. unet 网络接受任意大小的输入
  11. PBRT笔记(1)——主循环、浮点误差
  12. 转载:Java Lock机制解读
  13. DNN网络(三)python下用Tensorflow实现DNN网络以及Adagrad优化器
  14. 《你不知道的javascript》读书笔记1
  15. Data Partitioning Guidance
  16. ehcache缓存配置与参数说明
  17. linux 安装scala
  18. iptables清空链的规则
  19. 7 -- Spring的基本用法 -- 5... Spring容器中的Bean;容器中Bean的作用域;配置依赖;
  20. linux 线程的同步 三 (内存信号量的使用)

热门文章

  1. Jquery 欲绑定事件
  2. linux 管道与重定向
  3. django 'set' object does not support indexing
  4. Java Integer为代表的包装类
  5. C#操作windows服务,安装、卸载、停止、启动
  6. sql server不用安装sql管理工具开启sa
  7. 微信开发之c#下缓存jssdk的access_token
  8. ASP.NET Core2.0杂项
  9. redis安装 卸载 启动 关闭
  10. jvisualvm_使用jmx连接远程linux应用