尝试运行此代码时:
`SELECT
CASE WHEN a.promotionflag=0 THEN 'NoPromotion'
WHEN (Sales)/ISNULL(Margin,0) > -3.0000
AND (Sales)/ISNULL(Funding, 0) < 0 THEN 'RED'
WHEN (Sales) <0 THEN 'RED'
WHEN (Sales)= 0 and (Margin) <0 then 'RED'
WHEN (Sales)/ISNULL(Margin, 0) >= 0 THEN 'GREEN'
WHEN (Sales) IS NULL THEN 'NonPriority'
WHEN (Margin) IS NULL THEN 'NonPriority'
ELSE 'YELLOW'
END AS Promotions`
我收到一个错误,说“附近的语法不正确>”,并把我带到第一个示例中有>。当我徘徊在这个问题上时,我第一次收到错误时,它也提到了一个“布尔函数”
我希望这段代码返回我的颜色值基于上述条件。
3条答案
按热度按时间nszi6y051#
ISNULL
在mysql中只接受一个参数并返回1或0。你可能在找IFNULL
. 另外,使用0作为null替换是一个坏主意,因为您将得到除0。34gzjxbg2#
我猜你想要标准的
NULLIF()
防止被零除的函数。此版本的查询应该可以工作:我看你的问题没有什么明显的问题。一种可能是在那个位置周围有个坏角色。有时只要重新输入代码就可以解决问题。
s71maibg3#
将isnull更改为ifnull: