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值的更多相关文章

  1. Oracle中NULL值与索引

    NULL值是关系数据库系统布尔型(true,false,unknown)中比较特殊类型的一种值,通常称为UNKNOWN或空值,即是未知的,不确定的.由于NULL存在着无数的可能,因此NULL值也不等于 ...

  2. 问题:oracle 排序 null值放在最后;结果: ORACLE中null的排序问题

    ORACLE中null的排序问题 关键字: oracle nulls 问题描述:    在平时的业务处理中,经常遇到要对业务数据进行排序,并且要对null值也做相应的排序.在Oracle中,进行Ord ...

  3. 【Oracle】Oracle 的过程化SQL(PLSQL)中NULL值的处理

    下面是NULL的几个注意点: 1.NULL值既不是空格也不是0. 2.给表插入值的时候,如果没有给列指定列值,则默认为NULL. 3.当算术表达式里包含NULL值时,其计算结果也是NULL值. 这时候 ...

  4. oracle 关于null值排序

    在oracle中根据字段来desc排序的话null值可能会在数据的最前面.然而有时候我们查看数据的时候并不希望能够在前面看到这些null值的排序数据. 因此我查了一下: 1.排序的时候运用nvl(). ...

  5. Oracle中Null与空字符串' '的区别

    含义解释: 问:什么是NULL? 答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零. ORACLE允许任何一种数据类型的字段为空,除 ...

  6. SQL——处理列中NULL值

    处理NULL值 - 数据库中某列为NULL值,使用函数在列值为NULL时返回固定值.    SQLServer:ISNULL(col,value)        示例:SELECT ISNULL(co ...

  7. hive 配置文件以及join中null值的处理

    一.Hive的參数设置 1.  三种设定方式:配置文件 ·   用户自己定义配置文件:$HIVE_CONF_DIR/hive-site.xml ·   默认配置文件:$HIVE_CONF_DIR/hi ...

  8. Javascript中null值,特别注意的两点

    null 是一个javascript字面量,表示空值,就是没有对象被呈现.他是javascript原始值之一.null值常被放在期望一个对象上,但是不引用任何对象的参数位置,也就是说对象的初始化. 我 ...

  9. 微软BI 之SSIS 系列 - 对于平面文件中 NULL 值处理过程中容易极易混淆的几个细节

    开篇介绍 最近有人问我有关文件处理中空值处理的相关问题: OLE DB Destination 中的 Keep Nulls 如何控制 NULL 值的显示? 为什么选中了 Keep Nulls 但是数据 ...

随机推荐

  1. MySQL 汉字拼音

    http://blog.csdn.net/u012076316/article/details/54951365 http://www.cnblogs.com/diony/p/5483108.html ...

  2. R语言-有负下标里才干有零

    1.仅仅有负下标里才干有零 先看一个样例 >a<-c(1,2,3,4) >a[-1:1] > a[-1:1] Error in a[-1:1] : 仅仅有负下标里才干有零 (1 ...

  3. 119.WIN32窗口原理

    #include <Windows.h> //处理消息的回调函数 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WIN ...

  4. solr/lucence和关系数据库的混合使用

    我们知道solr提供了一个DIHandler,提供将关系数据库中的数据导成索引,然后使用solr查询. 对于一个大表中关联数个小表的查询,这非常耗费时间. 我的思路是: 1. 将一个大表做成索引,使用 ...

  5. what happens when changing the DOM via innerHTML

    what happens when changing the DOM via innerHTML

  6. mybatis中整合ehcache缓存框架的使用

    mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...

  7. 《TCP/IP具体解释卷2:实现》笔记--协议控制块

    协议层使用协议控制块(PCB)存放各UDP和TCP插口所要求的多个信息片.Internet协议维护Internet协议控制块 (internet protocol control block)和TCP ...

  8. Codeforces Round #450 (Div. 2) D.Unusual Sequences (数学)

    题目链接: http://codeforces.com/contest/900/problem/D 题意: 给你 \(x\) 和 \(y\),让你求同时满足这两个条件的序列的个数: \(a_1, a_ ...

  9. akka---Getting Started Tutorial (Java): First Chapter

    原文地址:http://doc.akka.io/docs/akka/2.0.2/intro/getting-started-first-java.html Introduction Welcome t ...

  10. windows SID

    显示SID whoami /user 修改SID C:\windows\system32\sysprep\sysprep.exe /generalize /oobe /reboot