asp数据库正反条件求出的数据集总数目不对

来源:百度知道 编辑:UC知道 时间:2024/06/08 01:15:54
sql="select * from sheet1 where InStr(现状,'已报废')>0"
执行完数据集记录数是82
sql="select * from sheet1"
执行完数据集记录数是614
sql="select * from sheet1 where InStr(现状,'已报废')<=0"
或者sql="select * from sheet1 where not InStr(现状,'已报废')>0"
执行完是376
哪位大仙帮俺分析分析为虾米这样~~~~~~~~~~~~
注:sheet1表“现状”字段值为:“已报废”&日期,例:“已报废0705”;或者空值;或者是“没填”;经过俺最原始的用向上向下键数了一下,有“已报废”字段的确定是82条。但为什么反条件求会不对呢??
TO lsk110:好神奇,这样果然可以。可为什么我按原来的条件,有一些空值一样会检索出来啊???

null和0长度字符串是不一样的, InStr(现状,'已报废')<=0或 not InStr(现状,'已报废')>0没有包括数据库里的null值。 加个 or isnull(现状)试下。

补充:
null和0长度字符串是不一样的,你第一个语句只查询 现状,'已报废' 当然是对的 但第二个语句就会丢掉空值了. 第二句你要的结果是要包含所有不是 现状,'已报废' 的值 所以必须给个是否空的判断.