ID JH LX (varchar2,2) 988 ll-444 空
988 lw-34 空
select id,jh from tablename where id=988 and lx<>'AA'你们猜,结果应该是什么?记录集应该有几行数据?
结果是0行!
988 lw-34 空
select id,jh from tablename where id=988 and lx<>'AA'你们猜,结果应该是什么?记录集应该有几行数据?
结果是0行!
解决方案 »
- 如何在stringgrid中屏蔽滚轮滑动事件???
- fastreport3.0 简单问题,为什么第一条记录显示不出来?
- 关于DBGRIDEH提交数据的问题??
- 如何获取目前连接的SQL Server服务器的IP地址
- 我刚建立的网站!www.hdongsoft.com
- 除了Delphi,我想再学一门语言,大家给我个意见,我真不知道学什么好呢!欢迎大家讨论哦
- 有關內存映射文件(mapviewoffile)的問題
- ???谁有csdn的外挂???
- edit控件有办法实现' - - '的输入格式吗?(输入格式,不是显示格式)
- frxReport打印数据库中图片字段,高手?
- 硬盘号,网卡号,CPU号,字符串加密
- 统一更新字段长度,类型
select id,jh from tablename where id=988 and lx<>'AA' and lx is not null
我觉的不是什么ORACLE的BUG, 是你理解空值的概念有问题
这样就把空值排除在外了,我需要空值。我理解空值有问题,但是难道access,sql server也有问题吗?人家可不是这样的,空值应该不等于任何值!
空值不匹配任何查询
oracle这样处理是正确的,或者说它这样处理是手册上说的很清楚的,并不是它处理错误
sql server也一样
空值不是任何值,如果空值是任何值的话返回值就是2了。
你那样选返回的结果是正确的。
哪你说返回什么结果?
如果你条件写lx is null
哪在看看结果~~
最好,设置默认值!
NUll<>‘’的!
因为他不是任何值所以,无发比较就不返回此记录。
因为lx<>'AA'可以是任何值
如果lx不为空时可以检索出数据
但是你定义的是空值,没检索出数据就对了
所以这个空值不会等于任何值的
SQL2000上查询的时候也差不多的
就看字段怎么定义了
因为lx<>'AA'可以是任何值
如果lx不为空时可以检索出数据
但是你定义的是空值,没检索出数据就对了
所以这个空值不会等于任何值的
SQL2000上查询的时候也差不多的
就看字段怎么定义了
这不能算一个bug吧,只是一个域的定义,而且oracle这个定义更加符合严谨的数学逻辑。空值不是值我想确实的应该是item status吧,就类似于newmodified一样。而这个定义是由人给出的,而且是比较严谨的数学意义上的定义。当然在厂商可以在表达形式上可以做到你说的。至于上面说的空值不是任何值也不算严谨。既然不是值那就谈不上任何值。两个不同域内的个体相互比较,除非需要预先定义要不不好比较。在常理上搂主的思维不能算是错.比方我们办公室里面不是女人的当然是男人,但是有人却说还有两台计算机也不是女人,呵呵,一个范围罢了。中文上的不是并不等于离散数学中的非。
这样如何???