有关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%'
即使数据库有这条数据也查不出。
自己也想不出是什么原因,希望知道的朋友告知一声。在此谢谢各位!
生命不息,奋斗不止!