万兽猫最高

老猫伏地,志在吃鱼。
随笔 - 95, 评论 - 560, 引用 - 8

导航

关于

猫年快乐

 

标签

每月存档

最新留言

广告

 

 

     昨天在我们的一个程序发现了一个Bug, 程序是给Accounting用的一个Report,但是Accounting的人发现无论如何这个Report抓不出数据,跟进去查了一下,发现查数据的Sql是类似这样的:

   Select * from table_1 where sonumber not in

(select sonumber from table_2

union all

select sonumber from table_3

)

数据在Table_1里是存在的,table_2/3 里也不包含对应的SOnumber,但是Query的结果就是没有数据。再查了一下,发现原因在于Table_2中有些SoNumber的值是Null,而 where [field] not in (null) 这个判断,在Sql 里总是会返回false的 (偶这里的SET ANSI_NULLS 是ON,不过好像偶没见谁用过OFF)

改了一下in里的Select,处理掉NULL值以后Bug Fix

-------------------------------

 潜水N久,俺又回来了。 最近会玩弄一些Biztalk 和 SAP R3互联方面的东西,今天这个算一小泡泡。

打印 | 张贴于 2006-10-13 14:42:00 | Tag:二进制生活

留言反馈

#回复: Be careful on NULL in Sql Server 编辑
null在数据库中是很特殊的一个值,null<>null,基本上null进行数值运算,例如null+null返回的也是null,并且返回的null不等于任何一个null,所以null一般用is来处理。相关的理论你可以搜索3VL(3 values logic)

有一些函数会忽略null来进行处理,而有一些则不会忽略。。。例如sum/avg等(如果我没记错的话)会忽略null值,而count不会忽略。group by也会将所有的null值归为一类。

反正null是一个需要特别留意的值。如果你研究深入一些,会发现它其实挺有意思的。。
2007-03-20 01:29:00 | [匿名:cocoman]
#re: Be careful on NULL in Sql Server 编辑
@Riven Huang
俺还在老地方啊。快3年了都。 你最近怎么样?
2006-10-23 11:21:00 | [匿名:Zee]
#re: Be careful on NULL in Sql Server 编辑
Zee,你终于现身了,最近在哪混?
2006-10-22 18:24:00 | [匿名:Riven Huang]
#re: Be careful on NULL in Sql Server 编辑
呵呵,好久不见博了. 偶知道楼主是谁,US那边的。
BTW,小S是谁?
2006-10-20 08:07:00 | [匿名:pp]
#re: Be careful on NULL in Sql Server 编辑
做过R3和.NET集成,也做过Biztalk的集成,还没有做过这两者的集成,倒是很希望和楼主沟通一下,互通有无。
msn:bucher(at)msn.com
2006-10-16 06:30:00 | [匿名:江千帆]
#re: Be careful on NULL in Sql Server 编辑
@Zee:
我看到发mail的是Steven He, 还以为就是你呢。汗~~~
2006-10-13 22:34:00 | [匿名:xzwplus]
#re: Be careful on NULL in Sql Server 编辑
@ chengbo:
Newegg不错。
@xzwplus:
Steven 错了。 BTW,偶也不是小S haha
2006-10-13 20:14:00 | [匿名:Zee]
#re: Be careful on NULL in Sql Server 编辑
newegg? Steven?
2006-10-13 19:20:00 | [匿名:xzwplus]
#re: Be careful on NULL in Sql Server 编辑
newegg?
2006-10-13 17:29:00 | [匿名:chengbo]
对不起,目前本随笔不允许发表新评论.

Powered by: Joycode.MVC引擎 0.5.2.0