CASE表达式中的语法错误,无法纠正

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

我想在我的where条件下面的代码:条件语句如:

更新前一天,政策有新的独立折扣(RAP16.DSCCD ='366'存在)并且更新,新独立折扣下降(RAP16.DSCCD ='366'下降)

我试过下面的代码

AND case when tt.ja2_effdt_t = rap01.hmedt_t - 1
   then trim(RAP16.DSCCD) = '366'
   when trim(rap01.hmedt_t) <> tt.ja2_effdt_t) 
   then trim(RAP16.DSCCD) <> '366'
           end 

下面的代码中有一些语法错误,但我无法纠正它。

sql oracle case
1个回答
2
投票

AND条款中使用OR / case结构而不是WHERE表达式通常更好。你probalby想要的东西:

AND ((tt.ja2_effdt_t = rap01.hmedt_t - 1 AND trim(RAP16.DSCCD) = '366')
     AND
     (trim(rap01.hmedt_t) <> tt.ja2_effdt_t AND trim(RAP16.DSCCD) <> '366'))
© www.soinside.com 2019 - 2024. All rights reserved.