SQL中的NULL问题(100分)

  • 主题发起人 主题发起人 wyw
  • 开始时间 开始时间
W

wyw

Unregistered / Unconfirmed
GUEST, unregistred user!
Sybase 数据库中有一个table1,其中有一项cleartime的数据类型类型为date,
该表中有的记录的cleartime为空,而有的不为空,现在我想把为空的记录选出来,
放在与table1结构相同的table2中

query1.sql.clear;
query1.sql.add('insert table2 ');
query1.sql.add('select * from table1');
query1.sql.add('where cleartime=NULL');
query1.execsql;

可是运行完了之后,table2中没有任何数据,但是在在sybase的工具中直接运行时,
table2中是有数据的,我不知道是不是与NULL有关
 
1、你的SETUSER是否正确
2、一般NULL好象用ISNULL(XX,YY) = YY判断比较放心一点
3、是否有重复的主键
 
在SQL中判断字段为NULL应该是用ISNULL:
where cleartime is null
 
你的语句应该这样写:
query1.sql.clear;
query1.sql.add('insert table2 ');
query1.sql.add('select * from table1');
query1.sql.add('where cleartime is NULL');
query1.execsql;
 
因为NUll是一个不确定的值,因此NULl是不等于NULL的
用is null来判断是正确的
 
query1.sql.clear;
query1.sql.add('insert table2 ');
query1.sql.add('select * from table1');
query1.sql.add('where cleartime IS NULL');
query1.execsql;
 
是这样的:
为空:fieldname is null
不为空:fieldname is not null

 
不错判断它是否为空应该用isnull
 
NULL 表示空,不是一个值。所以应该用 IS NULL (而不是 = NULL)
 
is null
可以
 
多人接受答案了。
 
后退
顶部