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

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

东西/原料

  • oracle 11g
  • plsql

方式/步调

  1. 1

    建立一张数据库测试表,用于演示null空值的查询

    create table tblNullData

    (

      Id         VARCHAR2(50) not null,

      ColCode    VARCHAR2(50),

      ColName    VARCHAR2(100)

    );

  2. 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. 3

    查询测试表中的所稀有据

    select * from tblNullData;

  4. 4

    若是想要查询ColName的值为空的,该怎么查询呢?下面的sql,从运行成果可以看出,是行不通的

    select * from tblNullData where ColName = null;

  5. 5

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

    select * from tblNullData where ColName is null;

  6. 6

    在oracle数据库中,想要查询非null的值,就需要利用is not null词组判定了。从运行成果可以看出,空字符串的记实行查询出来了

    select * from tblNullData where ColName is not null;

  7. 7

    假设想要查询出null和空字符串的成果,该怎么实现呢?此时可以利用NVL(expr1,expr2)函数,将null转换当作空字符串比力

    请注重:此处的空字符串需要指心猿意马一个值,好比两个单引号包含一个空格,或者具体的值,若是仅仅只是两个单引号的话,匹配是没有成果的

    select * from tblNullData where NVL(ColName, ' ') = ' ';

  • 发表于 2019-08-13 22:53
  • 阅读 ( 2346 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
admin
admin

0 篇文章

作家榜 »

  1. xiaonan123 189 文章
  2. 汤依妹儿 97 文章
  3. luogf229 46 文章
  4. jy02406749 45 文章
  5. 小凡 34 文章
  6. Daisy萌 32 文章
  7. 我的QQ3117863681 24 文章
  8. 华志健 23 文章

联系我们:uytrv@hotmail.com 问答工具