oracle 中的null与''
1.先看看Null与''在oracle中的表现
C:\Users\zen>sqlplus hr/hr SQL*Plus: Release 11.2.0.1.0 Production on Fri Mar 31 10:30:32 2017 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> create table test_null(id_ number,name_ varchar2(10)); Table created. SQL> insert into test_null values(1,'oracle'); 1 row created. SQL> insert into test_null values(2,''); 1 row created. SQL> insert into test_null values(3,null); 1 row created. SQL> select * from test_null; ID_ NAME_
---------- ----------
1 oracle
2
3 SQL> select nvl(name_,'It is null') nvl_null,nvl('','It is empty string') emptystr from test_null; NVL_NULL EMPTYSTR
---------- ------------------
oracle It is empty string
It is null It is empty string
It is null It is empty string SQL> select * from test_null where name_ is null; ID_ NAME_
---------- ----------
2
3 SQL> select * from test_null where name_=''; no rows selected SQL> select * from test_null where cast(name_ as varchar2(10))=''; no rows selected SQL> select * from test_null where cast(name_ as varchar2(10))=cast('' as varchar2(10)); no rows selected SQL> select * from test_null where name_<>''; no rows selected
SQL> select * from test_null where nvl(name_,'')='';
no rows selected
SQL> select * from test_null where nvl(name_,'A')='A';
ID_ NAME_
---------- ----------
2
3
SQL>
2.关于以上现象的解释
oracle 将'' 当成了null 处理。每个null都是独一无二的,对null的操作只能是 is null OR is not null,对于null的=<>,>,<的逻辑判断都会得到否。
3.看看null与''在Mysql中的表现
C:\Users\zen>mysql -uzen -p
Enter password: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.24-log MySQL Community Server (GPL) Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use product_test;
Database changed
mysql> drop table test_null;
Query OK, 0 rows affected (0.37 sec) mysql> create table test_null(id_ int,name_ varchar(127));
Query OK, 0 rows affected (0.59 sec) mysql> insert into test_null values(1,'oracle'),(2,''),(3,null);
Query OK, 3 rows affected (0.08 sec)
Records: 3 Duplicates: 0 Warnings: 0 mysql> select * from test_null;
+------+--------+
| id_ | name_ |
+------+--------+
| 1 | oracle |
| 2 | |
| 3 | NULL |
+------+--------+
3 rows in set (0.00 sec) mysql> select * from test_null where name_ is null;
+------+-------+
| id_ | name_ |
+------+-------+
| 3 | NULL |
+------+-------+
1 row in set (0.06 sec) mysql> select * from test_null where name_='';
+------+-------+
| id_ | name_ |
+------+-------+
| 2 | |
+------+-------+
1 row in set (0.00 sec) mysql> select * from test_null where name_<>'';
+------+--------+
| id_ | name_ |
+------+--------+
| 1 | oracle |
+------+--------+
1 row in set (0.00 sec) mysql> select * from test_null where name_ is not null;
+------+--------+
| id_ | name_ |
+------+--------+
| 1 | oracle |
| 2 | |
+------+--------+
2 rows in set (0.00 sec) mysql>
4.在mysql中null 就是null,''就是空字符,没有将二者混淆起来。
oracle 中的null与''的更多相关文章
- Oracle中的NULL、’’(空字符串)以及’_’(空格)
本文首发于 http://youngzy.com/ 在Oracle中使用 null,''(空字符串),'_'(空格)时,有没有遇到问题?产生疑惑? null和’’(空字符串)是一个意思 注: 为了便于 ...
- 【转】oracle中的NULL、''(空字符串)以及'_'(空格)
在Oracle中使用null,''(空字符串),'_'(空格)时,有没有遇到问题?产生疑惑? 1.NULL和''(空字符串)是一个意思 注:为了便于区分空字符串和空格,下面的示例均以'_'代表空格. ...
- Oracle中的null
测试数据:公司部分员工基本信息
- Oracle中的null与空字符串''的区别
含义解释:问:什么是NULL?答:在我们不知道具体有什么数据的时候,也即未知,可以用NULL,我们称它为空,ORACLE中,含有空值的表列长度为零.ORACLE允许任何一种数据类型的字段为空,除了以下 ...
- oracle中空值null的判断和转换:NVL的用法
1.NULL空值概念 数据库里有一个很重要的概念:空值即NULL.有时表中,更确切的说是某些字段值,可能会出现空值, 这是因为这个数据不知道是什么值或根本就不存在. 2.NULL空值判断 空值不等同于 ...
- oracle 中关于null的操作
空值 空值一般用NULL表示 一般表示未知的.不确定的值,也不是空格 一般运算符与其进行运算时,都会为空 空不与任何值相等 表示某个列为空用:IS NULL 不能使用COMM=NULL这种形式 某个 ...
- oracle中如何处理null
从两个表达式返回一个非 null 值.语法NVL(eExpression1, eExpression2)参数eExpression1, eExpression2如果 eExpression1 的计算结 ...
- Oracle 在not in中使用null的问题
http://www.linuxidc.com/Linux/2012-07/66212.htm 以前还专门小总结过一下Oracle中关于NULL的一些问题,碰巧今天在看书的过程中又看到了另外一个以前没 ...
- oracle中的函数
ORACLE中函数 Oracle已经内建了许多函数,不同的函数有不同的作用和用法,有的函数只能作用在一个记录行上,有的能够作用在多个记录行上,不同的函数可能处理不同的数据类型.常见的 ...
随机推荐
- 【转】 Pro Android学习笔记(二一):用户界面和控制(9):Gallery和SimpleAdapter
Gallery画廊式控件,如图所示,但是在API level 16,也即Android 4.1,被deprecated,可以使用HorizontableScroolView和ViewPager.但是后 ...
- 资料:MVC框架+SQL Server 数据集成引擎
ylbtech-资料:MVC框架+SQL Server 数据集成引擎 1.返回顶部 1. 功能特点: MVC框架耦合性低视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样 ...
- 用paramiko写堡垒机
paramiko paramiko模块,基于SSH用于连接远程服务器并执行相关操作. 基本用法 SSHClient 基于用户名密码连接: 基础用法: import paramiko # 创建SSH对象 ...
- SpringMvc之参数绑定注解详解之一
引言: 前段时间项目中用到了REST风格来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没有加 任何注解),查看了提交方式为application/ ...
- 获取服务器IP,客户端IP
客户端IP相关的变量 1. $_SERVER['REMOTE_ADDR']; 客户端IP,有可能是用户的IP,也有可能是代理的IP. 2. $_SERVER['HTTP_CLIENT_IP']; 代理 ...
- NEKOGAMES
http://bbs.3dmgame.com/thread-4133434-1-1.html
- URAL 2021 Scarily interesting! (贪心+题意)
题意:给定两个队伍的每个人的得分,让你安排怎么比赛才能使得观众知道冠军的时间最长. 析:贪心,很简单,就是先开始总分高的先出最差劲的,总分低的先出最厉害的,这个题当时实在是读的不明白啊,WA了好多次. ...
- eigen3.3.3+opencv3.2跑orbslam3数据集出现usleep错误
cd ORB_SLAM2 chmod +x build.sh ./build.sh的时候出现错误:/home/zhao/ORB_SLAM2-master/src/System.cc:236:28: e ...
- [CentOS7] SELinux
声明:本文主要总结自:鸟哥的Linux私房菜-第十六章.程序管理與 SELinux 初探,如有侵权,请通知博主 SELinux = Security Enhanced Linux 传统的文件权限与账号 ...
- JS的几条规则
总结一下,有这么几条规则需要遵守: 不要使用new Number().new Boolean().new String()创建包装对象: 用parseInt()或parseFloat()来转换任意类型 ...