所以我试图选择所有的值,包括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的所有值的查询?
答案 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;