ag亚游官团-北京的消防有限公司

首页

AD联系:507867812

ag亚游官团

时间:2019-11-18 22:21:23 作者:ManBetx客户端 浏览量:84564

ag亚游官团

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux,见下图

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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux,见下图

DB2中NULL值和空字符串问题DB2中NULL值和空字符串问题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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux,如下图

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

如下图

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux,如下图

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux,见图

ag亚游官团

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中NULL值和空字符串问题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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中NULL值和空字符串问题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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中NULL值和空字符串问题DB2中NULL值和空字符串问题DB2中NULL值和空字符串问题。

DB2中NULL值和空字符串问题

ag亚游官团DB2中NULL值和空字符串问题

DB2中NULL值和空字符串问题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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中NULL值和空字符串问题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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中NULL值和空字符串问题。

DB2中NULL值和空字符串问题

1.

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中NULL值和空字符串问题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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中NULL值和空字符串问题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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

2.

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中NULL值和空字符串问题

3.DB2中NULL值和空字符串问题。

DB2中NULL值和空字符串问题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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中NULL值和空字符串问题DB2中NULL值和空字符串问题

4.DB2中NULL值和空字符串问题。

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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中NULL值和空字符串问题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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linuxDB2中NULL值和空字符串问题DB2中NULL值和空字符串问题。ag亚游官团

展开全文
相关文章
ag真人平台

DB2中NULL值和空字符串问题

ag视讯官网

DB2中NULL值和空字符串问题....

众发娱乐

DB2中NULL值和空字符串问题....

ag在线

DB2中NULL值和空字符串问题....

亚洲城娱乐

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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux....

菠菜公社论坛

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux....

菠菜论坛菠菜公社

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux....

ag真人娱乐

一直以为空字符串是就是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的不同,所以不同的数据库还是不一样的,不能直接套用,多动手测试,实践出真知。

推荐阅读:

DB2数据库性能调整和优化(第1、2版) PDF http://www.linuxidc.com/Linux/2013-09/90679.htm

DB2数据库性能优化介绍 http://www.linuxidc.com/Linux/2013-09/90678.htm

linux....

热门资讯