db2判断字符为空_DB2中NULL值和空字符串问题

一直以为空字符串是就是NULL,当插入空字符串的时候就可以通过NULL,但是前段时间开发发现使用not in特定值后发现,空字符集居然也没有包括在内,当时我也认为,应该包括在内,后来做了个如下测试发现其实在DB2中NULL和空串真不是一回事。

create table tab

( id    integer not null,

name  char(50),

empid  char(10),

salary  char(15)

);

insert into tab values(1,'JACK','0001','2000');

insert into tab values(2,'TOM','0002','');

insert into tab values(3,'LUCY','0003','3000');

insert into tab values(4,'JAME','0004','');

insert into tab values(4,'KIM','0005',null);

db2 => select * from tab;

select * from tab

ID          NAME                                              EMPID      SALARY

----------- -------------------------------------------------- ---------- ---------------

1 JACK                                              0001      2000

2 TOM                                                0002

3 LUCY                                              0003      3000

4 JAME                                              0004

4 KIM                                                0005      -

5 record(s) selected.

db2 => select * from tab where salary not in ('2000','3000');

select * from tab where salary not in ('2000','3000')

ID          NAME                                              EMPID      SALARY

----------- -------------------------------------------------- ---------- ---------------

2 TOM                                                0002

4 JAME                                              0004

2 record(s) selected.

db2 => select * from tab where salary is null;

select * from tab where salary is null

ID          NAME                                              EMPID      SALARY

----------- -------------------------------------------------- ---------- ---------------

4 KIM                                                0005      -

1 record(s) selected

对此DB2相关文档给出的答案是,NULL是一个不确定值,可以代表任何值,所以不包括在任何一个指定集合中,并且NULL的值不能通过列值过滤,只能通过IS NULL 或者IS NOT NULL方式过滤,所以上面你可以看到这样的结果,这个貌似和Oracle的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值