NULL值的处理和逻辑操作||分组函数(从实践中学习Oracle SQL 第五章 第六章)
来源:互联网 发布:重庆七腾软件 编辑:程序博客网 时间:2024/06/05 15:17
一、NULL的使用
1.一个表达式中包含任何NULL(空值),该表达式的值就为NULL
2.=null 和 !=null 都不可以,因为没办法证明NULLd等于某个值也不能证明NULL不等于某个值
引入is NULL 和 is not NULL 来处理这类问题
3.空值(NULL)的排序 --->升序排序NULL在最后,降序排序NULL在最前面
二、NULL逻辑表达式和逻辑运算符
1.AND运算的优先级
F----->NULL-------->T
F AND NULL-->F
T AND NULL-->NULL
NULL AND NULL -->NULL
2.OR 运算的优先级
T----->NULL-------->F
T OR NULL -->T
F OR NULL -->NULL
NULL OR NULL -->NULL
3.NOT NOT NULL-->NULL
三、运算符的优先级
算数运算符->连接运算符->比较(关系)运算符->IS NULL,IS NOT NULL,LIKE,NOT LIKE ->BETWEEN NOT BETWEEN ->NOT->AND->OR
使用易混淆的运算符的时候最好加上括号,免的混乱
SELECT *
FROM EMP
WHERE job='CLERK'
OR job='SALESMAN'
AND sal>=1300
首先找到工资在1300元以上(包含1300)的销售人员,再找到所有的文员 。最后合并出最后的结果
四、NVL函数
NVL 函数是一个空值转换函数
NVL(表达式1,表达式2) 如果表达式1为空值(NULL),NVL返回值为表达式2的值,否则返回表达式1的值。该函数目地是将NULL转换成一个实际的值。表达式1和2的数据类型必须一致
有经验的开发人员会在开发的SQL语句中经常使用NVL语句
五、DECODE函数
Oracle中的分支语句
与case语句类似
CASE job WHEN 'SALESMAN' THEN sal*1.15
WHEN 'CLERK' THEN sal*1.20
WHEN 'ANALYST' THEN sal*1.25
ELSE sal*1.40
END
as "New Salary"
DECODE(job,'SALESMAN',sal*1.15,
'CLERK' ,sal*1.20,
'ANALYST',sal*1.25,
1.一个表达式中包含任何NULL(空值),该表达式的值就为NULL
2.=null 和 !=null 都不可以,因为没办法证明NULLd等于某个值也不能证明NULL不等于某个值
引入is NULL 和 is not NULL 来处理这类问题
3.空值(NULL)的排序 --->升序排序NULL在最后,降序排序NULL在最前面
二、NULL逻辑表达式和逻辑运算符
1.AND运算的优先级
F----->NULL-------->T
F AND NULL-->F
T AND NULL-->NULL
NULL AND NULL -->NULL
2.OR 运算的优先级
T----->NULL-------->F
T OR NULL -->T
F OR NULL -->NULL
NULL OR NULL -->NULL
3.NOT NOT NULL-->NULL
三、运算符的优先级
算数运算符->连接运算符->比较(关系)运算符->IS NULL,IS NOT NULL,LIKE,NOT LIKE ->BETWEEN NOT BETWEEN ->NOT->AND->OR
使用易混淆的运算符的时候最好加上括号,免的混乱
SELECT *
FROM EMP
WHERE job='CLERK'
OR job='SALESMAN'
AND sal>=1300
首先找到工资在1300元以上(包含1300)的销售人员,再找到所有的文员 。最后合并出最后的结果
四、NVL函数
NVL 函数是一个空值转换函数
NVL(表达式1,表达式2) 如果表达式1为空值(NULL),NVL返回值为表达式2的值,否则返回表达式1的值。该函数目地是将NULL转换成一个实际的值。表达式1和2的数据类型必须一致
有经验的开发人员会在开发的SQL语句中经常使用NVL语句
五、DECODE函数
Oracle中的分支语句
与case语句类似
CASE job WHEN 'SALESMAN' THEN sal*1.15
WHEN 'CLERK' THEN sal*1.20
WHEN 'ANALYST' THEN sal*1.25
ELSE sal*1.40
END
as "New Salary"
DECODE(job,'SALESMAN',sal*1.15,
'CLERK' ,sal*1.20,
'ANALYST',sal*1.25,
sal*1.40) as "New Salary"
六、分组函数的空值问题
除了COUNT(*) 之外,其他的分组函数都不处理NULL(以AVG为例加和时NULL不参与计算相除时NULL行不计入个数)
使用NVL 进行空值的处理
AVG(NVL(comm,0)
如果在一个查询中使用了分组函数,任何不在分组函数中的列或表达式必须在GROUP BY子句中。如果在一个查询中所使用的限制条件中包括了分组函数,则该限制条件必须放在HAVING子句中而不能放在WHERE子句中。MIN和MAX函数不但可以用于数字型数据而且还可以用于字符型数据和日期型数据。)
0 0
- NULL值的处理和逻辑操作||分组函数(从实践中学习Oracle SQL 第五章 第六章)
- Oracle.三.函数、null值的处理以及逻辑操作
- 常用的SQL*PLUS命令 ,SQL缓冲区操作和最基本的脚本操作(从实践中学习Oracle SQL-第三章)
- 5 NULL值的处理、逻辑操作和函数嵌套
- Null值的处理、逻辑操作和函数嵌套
- oracle中长用到的单行函数 (从实践中学习Oracle SQL-第四章)
- oracle 转义符(escape)和order by (从实践中学习Oracle SQL-第二章)
- Oracle第六章 分组函数习题答案
- 第六章分组函数
- 第六章:集合函数和分组
- 从实践中学习Oracle SQL笔记
- C++ Primer Plus学习:第六章 分支语句和逻辑操作符(1)
- C++ Primer Plus学习:第六章 分支语句和逻辑操作符(2)
- ORACLE中处理空值NULL的几个通用函数
- C++primer(第五版)第六章函数学习笔记
- 关于Oracle中有null参与的逻辑或,逻辑与的操作结果
- oracle 更改时间类型的默认显示方式(从实践中学习Oracle SQL学习笔记 第一章)
- 第五章 操作符和表达式 第六章 指针第七章 函数[C和指针]
- sed系列:行或者模式匹配删除特定行
- 脑白金广告为何能促使脑白金成功?
- android 软件栈及应用开发框架(Application Framework)简介
- MyBatis+MySQL 返回插入的主键ID
- Mysql的JDBC 的常见连接属性
- NULL值的处理和逻辑操作||分组函数(从实践中学习Oracle SQL 第五章 第六章)
- 【漂亮一百】一张漂亮面膜--面膜新态度 拯救肌肤三大危肌
- ARM 一些特殊符号
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群(第二步)(4)
- 整合volley+greendao+gson,让android开发变得非常容易
- good cplusplus site
- centos下svn服务器的搭建
- ubuntu12.04 安装及配置Jboss7
- 如何在ubuntu下编译dolphin-player所用的libffmpeg.so