首页 > 解决方案 > case when in case when 作为计算列

问题描述

过去我得到了论坛的大力支持,希望有人可以帮助我解决我的问题,即

我有一个案例,当我想将它作为一个列返回时,但在某个地方出现了一个错误,''但我看不到它。欢迎任何帮助。

谢谢

CASE 
WHEN SUBSTRING(a.DET_NOMINALDR,3,2) =’BS’ 
THEN 0 
ELSE a.DET_NOMINALDR 
END as NEW_DET_NOMINALDR
    WHEN SUBSTRING(a.DET_NOMINALCR,3,2) =’BS’
 then 0 
else a.DET_NOMINALCR 
end as NEW_DET_NOMINALCR
WHEN NEW_DET_NOMINALDR = 0
    THEN NEW_DET_NOMINALCR
    ELSE NEW_DET_NOMINALDR AS NOMINAL
END

标签: sql

解决方案


您的子字符串缺少右括号

   select 
    (
    Case when ( 
    (Case when (substring(a.DET_NOMINALDR,3,2)) ='BS' then '' else a.DET_NOMINALDR end) ='') then 
    (Case when (substring(a.DET_NOMINALCR,3,2)) ='BS' then '' else a.DET_NOMINALCR end) 
    else (Case when (substring(a.DET_NOMINALDR,3,2)) ='BS' then '' else a.DET_NOMINALDR end) end) as Nominal

推荐阅读