oracle 中关于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。
最新文章
- adb install INSTALL_FAILED_ALREADY_EXISTS
- 使用C#在CEF中拦截并响应请求
- 【C#】分享一个弹出容器层,像右键菜单那样召即来挥则去
- [转]设计一款Android App总结
- ASP.NET Core 发布至Linux生产环境 Ubuntu 系统
- OpenCV图像处理篇之边缘检测算子
- 校友信息管理&;SNS互动平台之前言、目录及说明
- JDBC笔记
- BZOJ 3444: 最后的晚餐( )
- Canvas的quadraticCurveTo 和 bezierCurveTo 画曲线 方法细说
- Crazy Rows
- AIX加入能telnet远程连接方法的帐户
- 发博客用的一些HTML
- 利用Dropbox同步Arch下一些软件的配置文件
- 3255:十进制到六进制-poj
- 学了两天 react,乱讲一下学习思路,顺便弄了一个脚手架
- 痞子衡嵌入式:ARM Cortex-M文件那些事(0)- 文件关联
- Nginx原理
- P2P平台介绍
- CMPXCHG指令