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. MySQLSocketPHPvimApache

    原文:http://www.blogjava.net/asenyifei/articles/82575.html 自己装了一个MYSQL客户端,但却发现出现这样的错误: Can't connect t ...

  2. C/C++函数指针声明

    前天看APUE,看到signal的声明竟然是 void (*signal(int,void(*)(int)))(int); 初看下面,还真是看不出这是啥意思.道行太浅,仅仅能看到这样的函数指针 voi ...

  3. 4.Windows下安装ZooKeeper

    转自:https://www.cnblogs.com/mstmdev/p/5612791.html 官方主页: https://zookeeper.apache.org/     选择合适的镜像地址下 ...

  4. Weblogic问题汇总

    1. weblogic unable to get file lock问题 在项目使用过程中,非正常结束Weblogic进程导致Weblogic无法启动,出现以下错误: <BEA-141281& ...

  5. Spider_basic

    网络爬虫 定义:网络蜘蛛.网络机器人,抓取网络数据的程序 总结:用Python程序去模仿人去访问网站,模仿的越逼真越好 目的:通过有效的大量数据分析市场走势.公司决策 企业获取数据的方式 公司自有数据 ...

  6. windows下配置mycat与常见问题解决

    mycat官网:http://www.mycat.org.cn/ wiki:https://github.com/MyCATApache/Mycat-Server/wiki MyCat使用Mysql的 ...

  7. [D3] Add hovercard

    The way to add hovercard is Append a div with class 'hovercard' in the tick function, positioning th ...

  8. 接口如何使用(以笑话大全api为例)

    接口如何使用(以笑话大全api为例) 一.总结 一句话总结:直接用ajax,或者post,get方式向接口网址请求数据,然后接收网站传过来的数据就好,和我们写网站的时候前台向后台请求数据的方式一样. ...

  9. RMAN异机复制数据库(不同路径)

    1.恢复参数文件 设置环境变量: export ORACLE_SID=hncdfhq 登录RMAN: rman target / 在RMAN里把数据库起到nomount状态: startup nomo ...

  10. sql语句的编程手册 SQL PLUS

    一.SQL PLUS 引言 SQL命令 以下17个是作为语句开头的关键字: alter drop revoke audit grant rollback* commit* insert select ...