sql语句哪有错误

来源:百度知道 编辑:UC知道 时间:2024/06/15 06:34:25
select * from House where huzhu_name=''or huzhu_name=NULL;
上面的语句是查询住户姓名为空的房间信息,也就是空出的房间信息。哪位高手帮我看看哪有错?我觉得没有错误啊写的。但是数据库中明明有好多条空出的房间信息,该语句只能查出来一条。其中查出来的这条是huzhu_name=''的,而huzhu_name=NULL的数据查不出来。谢谢了!

select * from House where huzhu_name=''or huzhu_name is NULL;

查询空值的时候不能用=,而要用is
同理,查询不为空的时候不能用<>,而要用is not null

huzhu_name=NULL
这么写 是查询 huzhu_name列中中输入为 null 值的
你要查 为空的值
应该用 huzhu_name is null

考虑一下huzhu_name是' ',或是'',或是NULL等情况:

SQL SERVER下
select * from house where ltrim(isnull(huzhu_name,''))=''

Oracle下
select * from house where replace(huzhu_name,' ','') is null
(替换后,Oracle自动将''看成是NULL,注意,中间的' '含有一个空格)

以上仅参考