oracle中的null处理的简单理解

来源:互联网 发布:redis 缓存整个数据库 编辑:程序博客网 时间:2024/05/16 09:17

最近在检查sql时碰到几次对null处理的问题,迷惑了我们写sql的思路。下面就我的理解和网上查到的资料,对null的操作做一个总结。

首先对oracle中的null做一些简单的说明:
1、oracle中null与0,空字符串,空格,包括null与null也是不等的。
2、oracle中对null做算术运算结果仍然为null。
3、处理方法有nvl函数,比较方法是is null或者is not null。
4、null不能被索引,比如select count(null) from dual的查询结果是0。
5、null排序比其他所有类型的大,一个可以为空的字段倒排序,前面的都是null数据。

下面举例说明:


1、
SQL> select 1 from dual where null=null;
未选定行

SQL> select 1 from dual where null='';
未选定行

SQL> select 1 from dual where null=0;
未选定行

SQL> select 1 from dual where ''='';
未选定行

以上4个查询中,大家可以看到null在oracle中可以理解为什么都没有的意思,它与任何对象都是不相等的。


2、
SQL> select 1+null from dual;


    1+NULL
----------



SQL> select 1-null from dual;


    1-NULL
----------



SQL> select 1*null from dual;


    1*NULL
----------



SQL> select 1/null from dual;


    1/NULL
----------

SQL> select 1 from dual where 1+null is null;


         1
----------
         1


SQL> select 1 from dual where 1-null is null;


         1
----------
         1


SQL> select 1 from dual where 1*null is null;


         1
----------
         1


SQL> select 1 from dual where 1/null is null;


         1
----------
         1


以上是null的加减乘除操作,可见null的加减乘除是null。


3、
SQL> select 1 from dual where null is null;


         1
----------
         1


SQL> select 1 from dual where '' is null;


         1
----------
         1


SQL> select 1 from dual where nvl(null,0) is not null;


         1
----------
         1

以上两个查询可以看出null的判断方法是is null,nvl是对null做处理的函数;而且,空字符串也被认为是null。



提示:null是不能被%匹配到的如select 1 from dual where null like '%'是查不到结果的。

4、
SQL> select count(null) from dual;


COUNT(NULL)
-----------
          0


SQL> select count(nvl(null, 0)) from dual;


COUNT(NVL(NULL,0))
------------------
                 1

以上两个查询提醒大家在统计的时候注意根据自己的需要处理null字段的问题。

其他说明:
根据oracle中null的定义,null为未知,不等于null,因此在表中的唯一字段中存在多个null是不会违反唯一行约束的。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 1岁宝宝不爱吃饭喝水怎么办 两岁小宝宝不爱吃饭怎么办 4个月小宝宝咳嗽怎么办 3个月小宝宝咳嗽怎么办 2个月小宝宝咳嗽怎么办 8的岁儿童腿不直怎么办 作业盒子选错年级怎么办 两岁x型腿怎么办 绿萝叶子有水滴怎么办 打游戏变菜了怎么办 车被记号笔画了怎么办 水溶性彩铅受潮了怎么办 马克笔颜色涂深了怎么办 染发膏染眉毛了怎么办 用电容笔画画手有触感怎么办 CAD画图线性数字不居中怎么办 3d立体画笔堵塞怎么办 龋齿树脂填充老化后怎么办 小孩补过的牙疼怎么办 颜料弄到墙纸上怎么办 4岁的宝宝不爱涂色怎么办 oppo手机截图存不到相册怎么办 做的ih5保存不了怎么办 小偷偷东西发现后逃跑了怎么办? 网上有人传迷信诅咒怎么办 颜料粘在衣服上怎么办 家里有小偷撬锁怎么办 在家有人在撬门怎么办 6个月的宝宝腹泻怎么办 六个月大的宝宝拉肚子怎么办 六个月宝宝着凉拉肚子怎么办 六个月婴儿着凉拉肚子怎么办 怀孕六个月着凉拉肚子怎么办 六个月的婴儿消化不好怎么办 六个月婴儿不好好吃奶怎么办 六个月婴儿消化不好怎么办 六个月婴儿肠胃不好怎么办 受了惊吓后睡眠不好怎么办 宝宝夏季吃饭不爱带围嘴怎么办 3岁宝宝爱看电视怎么办 新生儿晚上哭闹不睡觉怎么办