SQL如何选择包括null的所有值?

时间:2017-03-23 14:55:06

标签: sql

所以我试图选择所有的值,包括null,我知道有关于这个主题的几个主题,但它对我来说都不起作用,或者我不知道如何实现它。无论如何,我必须得到所有颜色的最低价格。当我尝试查询时,我现在已经获得了除null之外的所有颜色的最低价格。但是当颜色为空时我也想要最低的价格。 这是我现在的查询:

SELECT p.*
FROM plant p
inner JOIN (SELECT Color, min(price) minPrice
            from  plant
            group by color                                          
        ) b on p.price = b.minPrice and
                p.color= b.color
order by plantcode;

如何修复它选择包括null的所有值的查询?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用COALESCE()为找不到null的情况指定零值:

SELECT  p.* FROM plant p
inner JOIN(SELECT Color, min(COALESCE(price,0)) minPrice
            from  plant group by color                                          
        ) b on COALESCE(p.price,0) = b.minPrice and
                COALESCE(p.color,'NULL')= COALESCE(b.color,'NULL') order by plantcode;

这只是一个"快速拍摄":在结果中,您会找到{min}的列0和列null的{​​{1}}。 price函数使它们等于"。

答案 1 :(得分:0)

编辑版本的cars10的回答:

SELECT  p.* FROM plant p
inner JOIN(SELECT Color, min(COALESCE(price,0)) minPrice
            from  plant group by color                                          
        ) b on COALESCE(p.price,0) = b.minPrice and
                COALESCE(p.color,'NULL')= COALESCE(b.color,'NULL') order by plantcode;
相关问题