在进行hive SQL查询数据的时候,where条件中使用了in或者not in,但是该值内有null空。
这时,无论是in还是not in,空值都不会进入该条件内,但是使用not in的时候只是希望把自己不想要的数据给排除掉,这时会同步把为null的数据也进行排除掉了。所以,在写not in或者in的时候,如果希望保留为null的数据。最好加一条
where (col not in (1,2,3,4) or col is null)
同样,进行先join 后where操作的时候,同样要注意值为null的情况
例如,在 select a,b from t1 join t2 on t1.id = t2.id where a <= 10 此时,为null的也会被全部排除,如果希望留下为null的数据。则也需要加上一个条件。 a<= 10 or a is null。