关于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。
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。
关于null的操作的更多相关文章
- Null值操作
1)NULL值写入的操作 create table j010( id number(7), name varchar2(20), salary number(7,2) ...
- oracle 中关于null的操作
空值 空值一般用NULL表示 一般表示未知的.不确定的值,也不是空格 一般运算符与其进行运算时,都会为空 空不与任何值相等 表示某个列为空用:IS NULL 不能使用COMM=NULL这种形式 某个 ...
- 转载:oracle null处理
(1)NULL的基础概念,NULL的操作的基本特点NULL是数据库中特有的数据类型,当一条记录的某个列为NULL,则表示这个列的值是未知的.是不确定的.既然是未知的,就有无数种的可能性.因此,NULL ...
- Winform开发框架里面使用事务操作的原理及介绍
在很多情况下,事务是个很有用的东西,可以把一系列的操作组合成一个原子粒度的操作,一旦组合中某个地方出错,可以整个干净的进行滚回,不会留下脏数据:除此之外,事务还能提高批量操作的效率,如在本地SQLit ...
- Java数据库——JDBC 2.0操作
可滚动的结果集 让结果集滚动起来 //================================================= // File Name : JDBC20_demo //-- ...
- YII2 实现后台操作记录日志(转)
一.连接linux服务器,创建数据文件 php yii migrate/create user_log 二.修改数据文件 console/migrations/m150721_032220_admin ...
- 16.Linux配置环境变量和日志history和Terminal颜色和用户(IP)操作日志记录
$ vim /etc/profile #####################环境变量################################# export TZ='Asia/Shangh ...
- 使用jQuery操作Cookies的实现代码
Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是 ...
- MVC4.0 利用IActionFilter实现简单的后台操作日志功能
首先我们要了解MVC提供了4种常用的拦截器:IActionFilter(Action拦截器接口).IExceptionFilter(异常拦截器接口).IResultFilter(Result拦截器接口 ...
随机推荐
- 使用JavaScript获取CSS伪元素属性
我们可以通过DOM元素的 style 属性获取基本的CSS样式值, 但怎么获取CSS伪元素属性呢? 如下 // 获取 .element:before 的 color 值 var color = win ...
- 团体程序设计天梯赛L1-024 后天 2017-03-22 17:59 68人阅读 评论(0) 收藏
L1-024. 后天 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 如果今天是星期三,后天就是星期五:如果今天是星期六,后天就 ...
- VC6.0 如何显示代码行号
VC6.0是一款比较经典.稳定的功能强大的IDE,目前也有很多人在使用.但美中不足的是它不能像其他IDE那样显示行号.这里需要用到一个插件VC6LineNumberAddin, 下载地址:http:/ ...
- redis整理の安全认证
设置客户端连接后进行任何其他指定前需要使用的密码. tips:因为 redis 速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进 行 150K 次的密码尝试,这意味着你需要指定非常 ...
- WebApi与Mvc的区别
ASP.NET Mvc是基于ASP.NET管道设计的框架,但是Mvc应用程序只能在iis中运行,而WebApi框架既可以寄宿在IIs上也可以在Self-Host上进行处理. Mvc和webapi都有相 ...
- selenium alert JS弹窗问题处理
弹窗一般分为三种类型: 1.警告消息框(alert) 警告消息框提供了一个"确定"按钮让用户关闭该消息框,并且该消息框是模式对话框,也就是说用户必须先关闭该消息框然后才能继续进行操 ...
- tf-idf sklearn
第一步:语料转化为词袋向量 step 1. 声明一个向量化工具vectorizer: 本文使用的是CountVectorizer,默认情况下,CountVectorizer仅统计长度超过两个字符的词, ...
- idea debug 启动慢出现假死
断点设置不合理引发应用启动慢问题java idea应用启动很慢|非常慢|超级慢的问题排查! 解决关于应用启动超慢这个问题,其实两年前就已经遇到过,https://blog.csdn.net/li396 ...
- 模拟RHCSA考试环境
转载自 http://blog.51cto.com/10681635/2084794 模拟RHCSA考试环境 第1章 修改 root 密码 第2章 配置网络 第3章 设定SeLinux 第4章 ...
- 洛谷P3616 富金森林公园
题目描述 博艾的富金森林公园里有一个长长的富金山脉,山脉是由一块块巨石并列构成的,编号从1到N.每一个巨石有一个海拔高度.而这个山脉又在一个盆地中,盆地里可能会积水,积水也有一个海拔高度,所有严格低于 ...