细说Oracle中NULL值
1、NULL是什么?
NULL表示UNKNOW(未知),其不代表不论什么值。
比如一行中某列没有不论什么值即为NULL。
ORACLE同意不论什么一种数据类型的字段为空,除了下面两种情况:
1)主键字段(primary key),
2)定义时已经加了NOT NULL限制条件的字段
2、NULL有什么用?
1)NULL可用于条件推断:
SELECT * FROM EMP WHERE COMM IS NULL;
或
SELECT * FROM EMP WHERE COMM IS NOT NULL;
3、使用NULL常见注意事项?
1)推断列或变量是否为NULL。仅仅能使用条件IS NULL 或 IS NOT NULL
2)空值不能被索引
3)NULL在排序操作中默觉得最大值处理:
SELECT * FROM EMP ORDER BY comm DESC;
4)ORACLE中NULL和不论什么值算术运算结果为NULL
#加减乘除操作:
SELECT 1+NULL FROM DUAL;
SELECT 1-NULL FROM DUAL;
SELECT 1*NULL FROM DUAL;
SELECT 1/NULL FORM DUAL;
5)NULL无法用比較运算符 比如 =、<> != ,考虑下面语句块怎样输出?
DECLARE
n1 VARCHAR2(20);
n2 VARCHAR2(20) := 'a';
BEGIN
IF n1 <> n2 THEN --equivalent to NULL
dbms_output.put_line('<>');
ELSE
dbms_output.put_line('=');
END IF;
END;
输出:=
6)工作中。尤其从事报表开发。在涉及数量、金额统计等SQL语句,採用NVL函数忽略NULL值。
4、相关NULL函数使用方法介绍:
1)NVL(p1,p2)函数。假设p1为空则返回p2,否则返回p1。
关于上例语句块的处理可參看下例:
DECLARE
n1 VARCHAR2(20);
n2 VARCHAR2(20) := 'a';
BEGIN
IF nvl(n1,'xx') <> n2 THEN
dbms_output.put_line('<>');
ELSE
dbms_output.put_line('=');
END IF;
END;
2)NVL2(p1,p2,p3)函数,假设p1非空则返回p2,否则返回p3:
SELECT NVL2(NULL,1,2) FROM DUAL;
SELECT NVL2(0,1,2) FROM DUAL;
3)NULLIF(p1,p2)函数。 假设p1=p2则返回NULL。否则返回p1:
SELECT NULLIF(1,1) FROM DUAL;
SELECT NULLIF(1,2) FROM DUAL;
4)COALESCE(p1,p2..Pn)函数,返回第一个非空值:
SELECT COALESCE(NULL,NULL,1,2,3) FROM DUAL;
-----------------------------------------------
Dylan Presents.
细说Oracle中NULL值的更多相关文章
- Oracle中NULL值与索引
NULL值是关系数据库系统布尔型(true,false,unknown)中比较特殊类型的一种值,通常称为UNKNOWN或空值,即是未知的,不确定的.由于NULL存在着无数的可能,因此NULL值也不等于 ...
- 问题:oracle 排序 null值放在最后;结果: ORACLE中null的排序问题
ORACLE中null的排序问题 关键字: oracle nulls 问题描述: 在平时的业务处理中,经常遇到要对业务数据进行排序,并且要对null值也做相应的排序.在Oracle中,进行Ord ...
- 【Oracle】Oracle 的过程化SQL(PLSQL)中NULL值的处理
下面是NULL的几个注意点: 1.NULL值既不是空格也不是0. 2.给表插入值的时候,如果没有给列指定列值,则默认为NULL. 3.当算术表达式里包含NULL值时,其计算结果也是NULL值. 这时候 ...
- oracle 关于null值排序
在oracle中根据字段来desc排序的话null值可能会在数据的最前面.然而有时候我们查看数据的时候并不希望能够在前面看到这些null值的排序数据. 因此我查了一下: 1.排序的时候运用nvl(). ...
- Oracle中Null与空字符串' '的区别
含义解释: 问:什么是NULL? 答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零. ORACLE允许任何一种数据类型的字段为空,除 ...
- SQL——处理列中NULL值
处理NULL值 - 数据库中某列为NULL值,使用函数在列值为NULL时返回固定值. SQLServer:ISNULL(col,value) 示例:SELECT ISNULL(co ...
- hive 配置文件以及join中null值的处理
一.Hive的參数设置 1. 三种设定方式:配置文件 · 用户自己定义配置文件:$HIVE_CONF_DIR/hive-site.xml · 默认配置文件:$HIVE_CONF_DIR/hi ...
- Javascript中null值,特别注意的两点
null 是一个javascript字面量,表示空值,就是没有对象被呈现.他是javascript原始值之一.null值常被放在期望一个对象上,但是不引用任何对象的参数位置,也就是说对象的初始化. 我 ...
- 微软BI 之SSIS 系列 - 对于平面文件中 NULL 值处理过程中容易极易混淆的几个细节
开篇介绍 最近有人问我有关文件处理中空值处理的相关问题: OLE DB Destination 中的 Keep Nulls 如何控制 NULL 值的显示? 为什么选中了 Keep Nulls 但是数据 ...
随机推荐
- [React & Testing] Simulate Event testing
Here we want to test a toggle button component, when the button was click, state should change, styl ...
- Zorka和zico实现不同主机之间的交互
之前参考下面的两篇博文进行了zorka以及其collector端zico的配置. http://quyuxjtu.sinaapp.com/?p=532 http://quyuxjtu.sinaapp. ...
- 看好腾讯,鄙视百度(腾讯的核心竞争力,不是超过10亿的QQ的注册用户,也不是某一项产品、技术方面优势,而是“耐心”:懂得在合适的时间推出合适的产品。”)
百度,自始至终只是一个低劣的模仿者,且一切向前看,完全违背了一个搜索引擎所应该遵循的基本原则.谁给的钱多就能搜着谁,这跟贩毒有什么区别? 腾讯也在模仿别人,但是,它是模仿然后超越.在中国互联网发展历史 ...
- (转)oracle 启动监听 报“监听程序不支持服务” 解决
转自 http://www.51testing.com/html/99/478599-842622.html 今天安装了oracle后,启动监听,报错如下: 启动tnslsnr: 请稍候... ...
- 【Java并发编程实战】-----“J.U.C”:CLH队列锁
在前面介绍的几篇博客中总是提到CLH队列,在AQS中CLH队列是维护一组线程的严格依照FIFO的队列.他可以确保无饥饿,严格的先来先服务的公平性.下图是CLH队列节点的示意图: 在CLH队列的节点QN ...
- 多校连萌15-8-12#A
#include <cstdio> #include <iostream> #include <algorithm> #include <queue> ...
- C# SocketAsyncEventArgs类
Namespace:System.Net.Sockets Assemblies:System.Net.Sockets.dll, System.dll, netstandard.dll (Represe ...
- angular 设置全局常量
一:在项目核心文件core.module.ts中设置全局静态常量 解释:相当于自动注入到inject中. providers:[ { provide:'BASE_CONFIG', useValue:' ...
- 仿oschina 主界面的实现(二) -------Toolbar + DrawerLayout
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...
- 硬件——STM32 , 录音
战舰V3的录音程序解析 上一章,我们实现了一个简单的音乐播放器,本章我们将在上一章的基础上,实现一个简单的录音机,实现WAV录音.本章分为如下几个部: 50.1 WAV简介 50.2 硬件设计 50. ...