与标题中一样,错误发生在:
CASE
WHEN hl.brnd_fmly_desc_txt <> null THEN 'HERO BRANDS'
ELSE NULL
END AS hero_brnd_fmly_desc_txt,
...
LEFT JOIN (SELECT DISTINCT h.brnd_fmly_desc_txt, h.brnd_fmly_id
FROM ext_ce.hero_brands_list h
GROUP BY h.brnd_fmly_desc_txt, h.brnd_fmly_id) AS hl
on c.brnd_fmly_id = hl.brnd_fmly_id
代码太复杂而无法粘贴。我将离开加入h.brnd_fmly_desc_txt到现有查询并且如果满足条件:c.brnd_fmly_id = hl.brnd_fmly_id将值称为'HERO BRANDS'
这是Postgresql 8.3
提前致谢
我不知道你为什么会收到这个错误。但你的逻辑错了。表达式<> null
总是返回NULL
,它被视为false。你想要的逻辑是:
(CASE WHEN hl.brnd_fmly_desc_txt IS NOT NULL THEN 'HERO BRANDS'
END) AS hero_brnd_fmly_desc_txt
不需要ELSE
。您可以将其保留,但它是多余的,因为默认值为NULL
。