oracle数据库中的null、空字符串值怎么查询
1、创建一张数据库测试表,用于演示null空值的查询create table tblNullData( Id VARCHAR2(50) not null, ColCode VARCHAR2(50), ColName VARCHAR2(100));

2、往测试表中插入测试记录,包含一个NULL、空字符串、非空字符串值insert into tblNullData(Id, ColCode, ColName) values(sys_guid(), 'Col001', '这是有值的');insert into tblNullData(Id, ColCode, ColName) values(sys_guid(), 'Col002', '');insert into tblNullData(Id, ColCode, ColName) values(sys_guid(), 'Col003', NULL);

3、查询测试表中的所有数据select * from tblNullData;

4、如果想要查询ColName的值为空的,该怎么查询呢?下面的sql,从运行结果可以看出,是行不通的select * from tblNullData where ColName = null;

5、在oracle数据库中,null与任何字段相比都会返回false,为此,oracle提供了一个is null词组判断null。从运行结果可以看出,空字符串不是nullselect * from tblNullData where ColName is null;

6、在oracle数据库中,想要查询非null的值,就需要使用is not null词组判断了。从运行结果可以看出,空字符串的记录行查询出来了select * from tblNullData where ColName is not null;

7、假设想要查询出null和空字符串的结果,该怎么实现呢?此时可以使用NVL(expr1,expr2)函数,将null转换成空字符串比较请注意:此处的空字符串需要指定一个值,比如两个单引号包含一个空格,或者具体的值,如果仅仅只是两个单引号的话,匹配是没有结果的select * from tblNullData where NVL(ColName, ' ') = ' ';
