我有一个数据集,我需要执行一个计算,如果没有计算其他列,则填充一列。我正在尝试使用CASE语句来执行此操作,但是我在语法上不太走运。
CASE WHEN [W/O] = 'O' THEN Net * (NetShare/100) ELSE Gross * (GrossShare/100)
WHEN [W/O] = 'W' THEN (NetShare/100)
END AS 'TEST'
任何帮助将不胜感激。
非常感谢
答案 0 :(得分:0)
这是您想要的吗?
(CASE WHEN [W/O] = 'O' THEN Net * (NetShare/100)
WHEN [W/O] = 'W' THEN (NetShare/100)
ELSE Gross * (GrossShare/100)
END) AS TEST
答案 1 :(得分:0)
我认为这可能只是OP的CASE
表达式格式错误的一种情况。 ELSE
始终是最后一个表达式;它不能在中间。因此,您需要执行以下操作:
CASE WHEN [W/O] = 'O' THEN Net * (NetShare/100)
WHEN [W/O] = 'W' THEN (NetShare/100)
ELSE Gross * (GrossShare/100)
END AS TEST
答案 2 :(得分:0)
一个CASE
表达式对每个WHEN
求值,如果没有匹配项,则使用ELSE
,它必须位于所有WHEN
之后。您的ELSE
放错了位置。这是你的意思吗?
CASE
WHEN [W/O] = 'O' THEN Net * (NetShare/100)
WHEN [W/O] = 'W' THEN (NetShare/100)
ELSE Gross * (GrossShare/100)
END AS 'TEST'