有关SQL查询为null的数据的问题

下面问题是本人在开发项目过程中碰到的问题,有些自己也不太确定是对不对的,不过测试的时候得到的答案确实和自己说的一样,希望知道的朋友告知一声。

 

直接用sql查询为null的数据的时候,用下面sql是查不出来的:

select * from Orders where Country <> null

select * from Orders where Country =null

select * from Orders where Country != null

 

下面两条sql就可以查得出来:

  //查询Country为null的数据

select * from Orders where Countryis null

 

  //查询Country不为null的数据

select * from Orders where Country is not null


本人想法:

数据库里面的数据即使是null,不过因为数据库里面的null根本不是我们编程的那个null,

而是DBNull类型的,所以查不出来。当然如果Country是int类型的话,那么int根本就没

有null值,只有DBNull,所以也查不出来。

 

在测试上面问题的时候,还发现了一个问题:Datetime类型的字段用like语句查不出来。

比如说GetDate是一个Datetime类型的字段,那么下面sql语句不能查出数据来

select * from Orders where GetDate like '%2010-2-2%'

即使数据库有这条数据也查不出。

自己也想不出是什么原因,希望知道的朋友告知一声。在此谢谢各位!

 

 

 

 

 

posted @ 2011-09-01 22:51  四龙须  阅读(2212)  评论(0编辑  收藏  举报