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已经内建了许多函数,不同的函数有不同的作用和用法,有的函数只能作用在一个记录行上,有的能够作用在多个记录行上,不同的函数可能处理不同的数据类型.常见的 ...
随机推荐
- Git 系列之tag的用法---为你的代码标记版本号
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 本地仓库操作 远程仓库操作 其他 tag 操作 在做app开发的时候经常有版本的概念,比如v1.0.v1.1之类的,不同 ...
- python为类定义构造函数
用python进行OO编程时, 经常会用到类的构造函数来初始化一些变量. class FileData: def __init__(self, data, name, type): ...
- DataGrid 支持字符截断显示
DataGrid支持截断时, 需要分2部分, DataGridColumnHeader和DataGridCell. 1)创建上述2部分的ControlTemplate . 2)把其中的ContentP ...
- puppet多环境配置(puppet自动化系列2)
三.Puppet多环境部署 我们为puppetmaster建立3个环境,它们分别是开发环境(jqdev).测试环境(jqtest).生产环境(jqprd). 3.1 配置puppet.conf 在标签 ...
- ObservableCollection和List的区别总结
一.继承的类和接口,还有它们的方法不同 1)ObservableCollection比较简单,继承了Collection, INotifyCollectionChanged, INotifyPrope ...
- PWA PSI statusingclient.UpdateStatus更新任务页面的AssnCustomFields的TextValue值
1.注意Changesxml格式和下面一定要一样 2.CustomFieldGuid和CustomFieldName都不能少,自定义域的uid和name其中uid或者是MD_PROP_UID_SECO ...
- BluetoothFindFirstRadio 函数
HBLUETOOTH_RADIO_FIND BluetoothFindFirstRadio( BLUETOOTH_FIND_RADIO_PARAMS* pbtfrp, HANDLE* phRadio ...
- .net 缓存之应用程序数据缓存
CaCheHelp类中代码如下: #region 根据键从缓存中读取保持的数据 /// <summary> /// 根据键从缓存中读取保持的数据 /// </summary> ...
- Centos6.5安装JDK8教程(一)
[原] 转载请注明原文地址, 保持对知识基本尊重,谢谢! Win7宿主系统 VmWareWorkstation 11应用下的 Centos6.5系统. /******************* ...
- RN控件之TextInput
/** * Sample React Native App * https://github.com/facebook/react-native */ 'use strict'; import Rea ...