我可以用一个非常简单的案例来复制我的问题。
解释
我有一个非常简单的表my_table
,只有一列column1
。
create table my_table (column1 varchar(58));
我对这个专栏的价值观很少,NULL
也是其中之一。
insert into my_table (column1) values ('value1'), ('value1'), ('value2'), (null), ('value2');
问题
当我尝试查询时, 它通过将所有s 组合在一起group by column1
来给出预期的结果。NULL
但是,如果我在类似的东西上添加一个where
子句column1
select count(1) as value_count, column1 from my_table where column1 <> 'value1' group by column1;
它忽略了两者value1
以及NULL
我期望忽略的地方value1
。
在这个简单的案例中,我可以通过添加一个OR
条件来解决这个问题,但是在我原来的案例中添加这个条件真的很痛苦。
有人可以更好地解释我为什么会出现这种行为以及如何解决这个问题?