细说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 但是数据 ...
随机推荐
- Cocos2d-x学习笔记(三)CCNode分析
原创文章.转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38706483 通过前两份学习笔记,我们不难发现CCScene.CCLa ...
- GestureDetector-onfling不执行
今天在做计算器的时候,遇到了一个问题,就是当我使用GestureDetector的时候,onFling方法不执行,而其他的可以执行.代码如下 @Override public boolean onDo ...
- css中的!important作用
css中的!important作用 一.总结 1.!important:是hack, 2.!important作用:让浏览器首选执行这个语句,当对同一个对象设置了多个同类型的属性的时候,首选执行这一个 ...
- matlab 可视化 —— 高级 api(montage)、insertObjectAnnotation、insertMaker
1. montage:同时显示多个图像 thumbnails = train_x(:, :, :, 1:100); thumbnails = imresize(thumbnails, [64, 64] ...
- Leetcode-求两数之和
题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中 ...
- 洛谷—— P1069 细胞分裂
https://www.luogu.org/problem/show?pid=1069#sub 题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家.现在,他正在为一个细 ...
- Dynamics CRM 2016 Web API 消息列表
Function Name Description CalculateTotalTimeIncident Function Calculates the total time, in minutes, ...
- SSH进阶(2)——用Struts拦截器实现登陆限制
拦截器从字面意思来看就是限制.限制用户訪问某些网页.在Action提出请求之前用拦截器来做权限设置,让符合的用户跳入对应的界面中.近期做的一个商城项目中就用到了自己定义的拦截器,实现了一个简单的ses ...
- Android实践 -- Android蓝牙设置连接
使用Android Bluetooth APIs将设备通过蓝牙连接并通信,设置蓝牙,查找蓝牙设备,配对蓝牙设备 连接并传输数据,以下是Android系统提供的蓝牙相关的类和接口 BluetoothAd ...
- CSS伪元素与伪类的区别
伪类和伪元素介绍 伪类:伪类选择元素基于的是当前元素处于的状态,或者说元素当前所具有的特性,而不是元素的id.class.属性等静态的标志.由于状态是动态变化的,所以一个元素达到一个特定状态时,它可能 ...