“AS”处或附近的语法错误(语句时的情况)

问题描述 投票:-1回答:1

与标题中一样,错误发生在:

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

提前致谢

sql postgresql
1个回答
1
投票

我不知道你为什么会收到这个错误。但你的逻辑错了。表达式<> 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

© www.soinside.com 2019 - 2024. All rights reserved.