sql查询语句中<>

sql查询语句中select t.status, t.rowid from person t where t.status<>2,此处查询的是status不等于2的记录,并过滤掉status为null的记录。注意:此处不管status是Integer类型还是Long类型,都会过滤掉status为null的记录。

再看一个sql查询语句select t.name,t.rowid from person t where t.name<>'jack', 此处name为String类型,这个sql语句会查询:所有name不等于jack字符串的记录,并过滤掉name为null的记录。

总结:当用不等于<>,即t.xxx<>yyy查询时,查询的范围就已经默认是不为null的所有记录了,所以查询的最终结果不包括字段值为null的记录。


字符串字段 <>  ''
select t.*,t.rowid from person t where t.name <> '' 会返回空集,查不出任何记录。
select t.*,t.rowid from person t where t.name <> '111' 会返回name不为111的所有记录。
select t.*,t.rowid from person t where t.name <> ' ' 会返回name不为空格字符串的所有记录。

猜你喜欢

转载自wangweiwei358.iteye.com/blog/1460328