如何在查询来自同一张表的不同列值条件时处理空值

时间:2019-03-04 13:31:19

标签: postgresql

有一个名为Products的表,其中有100列。我正在运行一个不同的column1,column2,column3 .... column6 postgresql查询,结果如下所示:

2    Product A  300  2017  Null  Null
2    Product A  300  2017  Null  Null

由于值为空,所以我得到了两行,而不是一行。如何解决呢?非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

null与自身不同,对引擎盖下的平等性进行了不同的检查。代替

select distinct field1, field2, ..., fieldn

您可以使用如下的select子句:

select distinct coalesce(field1, 'Empty') AS field1, ..., coalesce(fieldn, 'Empty') AS fieldn

对于可为空的字段,您只需使用coalesce

答案 1 :(得分:0)

删除上面重复项的一种方法是使用GROUP BY您想要为其提供不同值的列。像这样

SELECT column1, column2, column3, ...,column6
FROM sometable
GROUP BY column1, column2, column3, ...,column6