db2 10 往一个测试表里插入空字符串'',但是查询出来后,该字段为null
发布网友
发布时间:2022-08-19 17:55
我来回答
共3个回答
热心网友
时间:2023-10-13 16:13
我这里'' 和null是不一样的.db2可以区分的
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的,Oracle似乎是不分的,但是我现在用的db2 10,结果不分了,应该是数据库哪个配置没有配置好,开始以为是db2 兼容Oracle特性开了,结果给关了依然把''当成null,所以很费解,对于您的感谢,您的回答 我给设为满意了
热心网友
时间:2023-10-13 16:14
根据数据库的不同,数据库是给'' null 也是不同的,你可以采用
is not ll
case when 值 is not null then '' else 'null' end
decode(值,'','空,'null','null值',' ','空格')
length(值)>0
等方式来进行判断
热心网友
时间:2023-10-13 16:14
帮你问了下,只有个大概的答案:
也许是数据库看到你插入的是空就判定你没有插入数据,貌似我以前也遇到过类似的问题,如果还存在有别的非空字段这条数据就会存在追问您好,按说Oracle插入‘’会变成null ,但是db2 插入的话,应该是跟一般字符一样的,我记得我在其他db2上查询表,where column = ‘’ 这个会把数据中的‘’查出来,但是我现在用的db2 insert into table values ('') 之后,无论从客户端查看,还是通过命令查看,显示数据都为null,而且上面的where条件不起作用
db2数据库中,查询数据时判断查询字段是否为空或空字符串,如果是就查
where column_name is null or column_name = ''
HIBERNATE无法将NULL值插入列'id',一个主键自增问题
用于为long, short或者int类型生成 唯一标识。只有在没有其他进程往同一张表中插入数据时 才能使用。 在集群下不要使用。identity 对DB2,MySQL, MS SQL Server, Sybase和HypersonicSQL的内置标识字段提供支持。 返回的标 识符是long, short 或者int类型的。sequence 在DB2,PostgreSQL, Oracle, SAP DB, ...
SQL数据库语句大全
平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词 A: UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结...
请教SQL的一个问题~,如何在update时向某个列的值追加字符?
可以使用CONCAT函数进行字符串的连接,CONCAT(str1,str2,…)返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。 如果所有参数均为非二进制字符串,则结果为非二进制字符串。 如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字...
SQL语句,如何将一个字段中的一部分字符串作为条件查询
字符串中第一个位置始终为1;[ length ]:提取的字符数,如果省略,substr将返回整个字符串;函数功能:截取函数,可以实现提取字符串中指定的字符数;针对本例举例说明:select * from 表名 where substr([D],1,2)=“10”语句功能说明:从指定表中查询D字段第1、2个字符为“10的记录”。
怎么往mysql表里添加数据
1、首先打开Mysql命令行编辑器,连接Mysql数据库;2、使用所要操作的数据库,先显示一下数据库中的表;3、显示一下表结构,了解一下表中的列;4、向表插入数据,insert into 表名 (列名) values (值);5、查询表可以看到所插入的数据,select * from 表名;6、可以再插入一个数据,显示一下...
mysql怎么把固定的几个字符串,转成列的形式作为临时表查询
db2数据库 有个values函数可用于你说的这种操作,但是mysql本身是 没有这样的函数的。下面是取巧的一种写法,也能得到你想要的数据。如图:select trim(substring_index(substring_index(a.num,',',b.help_topic_id + 1),',' ,- 1)) AS numbfrom (select '39982665399,39023431098,39764974...
求SQL查询语句
空值判断符(判断表达式是否为空):IS NULL、NOT IS NULL逻辑运算符(用于多条件的逻辑连接):NOT、AND、OR1、范围运算符例:age BETWEEN 10 AND 30相当于age>=10 AND age<=302、列表运算符例:country IN ('Germany','China')3、模式匹配符例:常用于模糊查找,它判断列值是否与指定的字符串格式相匹配。可用于...
关于mysql数据库里面数据类型number的问题
mysql-(ytt/3305)->create table y1(f1 float,f2 double,f3 decimal(10,2));Query OK, 0 rows affected (0.03 sec) 三、字符类型字符类型和整形一样,用途也很广。用来存储字符、字符串、MySQL 所有未知的类型。可以简单说是万能类型! char(10) 代表最大支持 10 个字符存储,varhar(10) 虽然和 char(10...
高分java连接SQL server 2000 详细步骤
在练习这些代码的时候,你一定将jdbc的驱动程序放到服务器的类路径里,然后要在数据库里建一个表test,有两个字段比如为test1,test2,可以用下面SQL建 create table test(test1 varchar(20),test2 varchar(20),然后向这个表写入一条测试纪录,那么现在开始我们的jsp和数据库之旅吧。 一、jsp连接Oracle8/8i/9i数据库...