在Oracle中使用null,''(空字符串),'_'(空格)时,有没有遇到问题?产生疑惑?

1、NULL和''(空字符串)是一个意思

  注:为了便于区分空字符串和空格,下面的示例均以'_'代表空格。

  举个例子:

  1. --建表
  2. create table tbl_a (col_a varchar2(1), col_b int);
  3.  
  4. -- 造数据
  5. insert into tbl_a values(‘_’, 1); -- 插入空格
  6. insert into tbl_a values(‘’, 2); -- 插入空字符串
  7. insert into tbl_a values(null, 3); -- 插入NULL

  以上SQL执行成功后,执行select来检查:

  1. select count(*) from tbl_a; -- 结果是 3
  2. select count(*) from tbl_a where col_a = _’; -- 结果是 1
  3. select count(*) from tbl_a where col_a = ‘’; -- 结果是 0
  4. select count(*) from tbl_a where col_a is null; -- 结果是 2

  注意:由于''(空字符串)默认被转换成了NULL,不能使用 = ''作为查询条件。也不能用 is ''。虽然不会有语法错误,但是不会有结果集返回。只能用is null,不等于就是 is not null。

  进一步验证:

  1. select nvl(col_a, a’) from tbl_a;

  结果:

  原来,在Oracle中,null和''(空字符串)是一个意思。

2、分析函数与NULL

  在使用AVG,MAX,SUM,COUNT等函数时,为NULL的记录会被忽略。

  再插入几条数据:

  1. insert into tbl_a values(null, null); -- 插入NULL
  2. -- 执行成功。
  3. -- 再次证明,’’ 被当作了null处理.
  4. -- 因为该字段是 int 类型,如果是字符串,执行会报错
  5. insert into tbl_a values(‘a’, ‘’);

  查看数据:

  1. select * from tbl_a;

  结果如下:

  注:_代表空格,其余空白处表示NULL

  验证:

  1. select AVG(col_b) from tbl_a; -- 结果为 2 NULL的纪录行忽略掉了
  2. select MAX(col_b) from tbl_a; -- 结果为 3
  3. select SUM(col_b) from tbl_a; -- 结果为 6
  4. select COUNT(col_b) from tbl_a; -- 结果为 3
  5. select COUNT(col_a) from tbl_a; -- 结果为 2
  6. select COUNT(*) from tbl_a; -- 结果为 5

3、排序时,NULL作为无穷大处理

  例:

  1. select * from tbl_a order by col_b desc ;

  结果如下:

转载自《oracle中的NULL、''(空字符串)以及'_'(空格)

【转】oracle中的NULL、''(空字符串)以及'_'(空格)的更多相关文章

  1. Oracle中的NULL、’’(空字符串)以及’_’(空格)

    本文首发于 http://youngzy.com/ 在Oracle中使用 null,''(空字符串),'_'(空格)时,有没有遇到问题?产生疑惑? null和’’(空字符串)是一个意思 注: 为了便于 ...

  2. Oracle中的null与空字符串''的区别

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

  3. Oracle中长度为0字符串与null等价

    不试不知道,Oracle中,长度为0的字符串'' 居然与null等价! 众所周知,null代表空,什么都不存在,而一个字符串'',虽然长度为0,但毕竟已经是一个字符串,二者怎么能等价,混为一谈呢. 在 ...

  4. DB中字段为null,为空,为空字符串,为空格要怎么过滤取出有效值

      比如要求取出微信绑定的,没有解绑的 未绑定,指定字段为null 绑定的,指定字段为某个字符串 解绑的,有的客户用的是更新指定字段为1,有的客户更新指定字段为‘1’ 脏数据的存在,比如该字段为空字符 ...

  5. 刚从一道题发现的一些东西,PHP笔记,关于extract和null 空字符串

    队友发给我的一道extract变量的最基础的题目,他发现了一些问题,当传入shiyan=&flag=0时出flag,当传入shiyan=0&flag=0时不出flag,传入shiyan ...

  6. Oracle中的null

    测试数据:公司部分员工基本信息

  7. oracle 中的null与''

    1.先看看Null与''在oracle中的表现 C:\Users\zen>sqlplus hr/hr SQL Production :: Copyright (c) , , Oracle. Al ...

  8. 关于JavaScript中0、空字符串、'0'是true还是false的总结

    最近被问到关于js中空字符串是true还是false得问题,一时间没想起来,现在在chrome的console面板上输出代码测试一下. "" == false 结果是true    ...

  9. oracle中空值null的判断和转换:NVL的用法

    1.NULL空值概念 数据库里有一个很重要的概念:空值即NULL.有时表中,更确切的说是某些字段值,可能会出现空值, 这是因为这个数据不知道是什么值或根本就不存在. 2.NULL空值判断 空值不等同于 ...

随机推荐

  1. LeetCode--回文数(简单)

    题目描述: 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解 ...

  2. pycharm连接远程python的开发环境

    一.准备工作 1.远程主机配置python的开发环境(pyenv) 2.本地windowsp安装pycharm 二.配置pycharm连接 配置运行环境:

  3. 【CentOS 7】CentOS 7各个版本镜像下载地址(转)

    参考链接:https://www.centos.org/download/mirrors/ https://www.cnblogs.com/defineconst/p/11176593.html

  4. Java之Map接口(双列集合)

    Map集合概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...

  5. Vue Cli3 中别名的配置问题

    Vue Cli3 中别名的配置问题 vue-cli3中是没有config.build等目录的,这是因为vue-cli3中将这些配置隐藏起来了,如果想要修改,可以在vue.config.js文件中进行修 ...

  6. SQL,case ziduan when ziduan_value then 'result'

    case a.sex when 0 then '女' when 1 then '男' else '其他' end as sex 当a表的性别字段的value为0时将查询的value转换成 '女',当字 ...

  7. .Net Core 3.0开源可视化设计CMS内容管理系统建站系统

    简介 ZKEACMS,又名纸壳CMS,是可视化编辑设计的内容管理系统.基于.Net Core开发可跨平台运行,并拥有卓越的性能. 纸壳CMS基于插件式设计,功能丰富,易于扩展,可快速创建网站. 布局设 ...

  8. Linux:FTP服务器的搭建

    FTP服务器的简介 系统用户 即系统本机的用户.Linux一般不会针对实体用户进行限制,因此实体用户可以针对整个文件 系统进行工作.但通常不希望他们通过FTP方式远程访问系统. 虚拟用户 只能采用FT ...

  9. Educational Codeforces Round 76 (Rated for Div. 2)

    传送门 A. Two Rival Students 签到. Code /* * Author: heyuhhh * Created Time: 2019/11/13 22:37:26 */ #incl ...

  10. 201871010113-刘兴瑞《面向对象程序设计(java)》第十三周学习总结

    项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址>http ...