我有一个资料表,其中有一个字段(FLAG)是标志该资料是否可用,为1则不可用,为或NULL时则可用(由于字段是新加的,所以有些是为空),我用下面语句查询时它为什么只显示所有为0的记录: select * from tablename where flag<>1但select * from tablename where flag=1 也只显示为1 的记录难道“=”与"<>" 不是互补的吗?
解决方案 »
- SQL搜索语句distinct 求救
- 在XP系统下,d7+dbexpress+mysql时,sqlconnection正常,但sqldateset,不能读取数据库中的表
- DELPHI界面上的控件没了怎么办???
- COM注册问题(高手请进)
- 怎样用程序在BDE中设别名设定??
- 求 Delphi的Tchart控件中的Bar如何使用
- 如何根据IP地址获得相应的主机名字呢?
- DELPHI中父窗体和子窗体是怎么建立的??
- twebbrowser.document到底变成了什么?
- 多线程更新多个控件内容?如何即时显示?不假死?
- 请问:如何Delphi里面如何掉用.lib文件??????
- DBGrid的什么事件触发使得其中一行记录中每个字段值写到相应的文本框?
Database :SQL 2000
好像是必须用 where flag is null 去取得,我记得我就用的union解决这个问题的。
这应该是sql server的缺陷
select * from tablename where isnull(flag,0)=0
同时,告诉你另外一个怪现象
select * from tablename where dd<'20030210'
select * from tablename where dd<20030210
你看那个对哟,呵呵
oracle绝对没有这种的怪现象哈
离散数学没学好 :-)
所以你无论怎么计算都找不到该纪录,
只能用 where flag=0 or flag is null
或使用默认值