oracle数据库中的null、空字符串值怎么查询

oracle数据库中插入一行记实时 , 若是不给某一个栏位赋值 , 且该栏位是可空字段 , 那么 , 这个栏位的值就可能会是null或者空字符串 , 那么 , 对于这种null、空字符串值到底该若何查询呢?

需要这些哦
oracle 11g
plsql
方式/
1建立一张数据库测试表 , 用于演示null空值的查询
create table tblNullData
(
  Id         VARCHAR2(50) not null,
  ColCode    VARCHAR2(50),
  ColName    VARCHAR2(100)
);

oracle数据库中的null、空字符串值怎么查询

文章插图

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);

oracle数据库中的null、空字符串值怎么查询

文章插图

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

oracle数据库中的null、空字符串值怎么查询

文章插图

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

oracle数据库中的null、空字符串值怎么查询

文章插图

5在oracle数据库中 , null与任何字段比拟城市返回false , 为此 , oracle供给了一个is null词组判定null 。 从运行成果可以看出 , 空字符串不是null
select * from tblNullData where ColName is null;

oracle数据库中的null、空字符串值怎么查询

文章插图

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

oracle数据库中的null、空字符串值怎么查询

文章插图

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

oracle数据库中的null、空字符串值怎么查询

文章插图

以上内容就是oracle数据库中的null、空字符串值怎么查询的内容啦 , 希望对你有所帮助哦!

推荐阅读