需要查询所有数据包括null和''的数据的时候,以下语句的查询是不包含null数据的
select * from Project t where t.name like '%%'; -- 查不出null值
select * from Project t where t.name like '%中国%'; -- 查询结果也不包含null的行
select * from Project t where t.name = '中国' ; -- 查询的数据不包括null和''
解决办法:
select * from Project t where nvl(t.name,' ') like '%%' ;-- 如果为null则转换为 ' ',一个空格
select * from Project t where nvl(t.name,'null') like '%%' ;-- 字符串 'null'
select * from Project t where nvl(t.name,'123') like '%%' ;-- 任意字符串
注: 替换为的字符串需多留意,根据程序需求,查询结果是否要包含null的数据!!!