本文介绍了语法错误“缺少关键字" WHERE子句中的case语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在检查以下情况时的case语句中出现语法错误:
I am having some syntax error in my case statement where I am checking below condition:
((RAP10B.CLMSRC = '2', RAP01.EFFDT - 3 years <= RAP10.LOSSDT < RAP01.EFFDT) OR (RAP10B.CLMSRC <> '2', RAP01.EFFDT - 3 years <= RAP10.LOSSDT < RAP01.EFFDT - 60 days)下面是我正在使用的代码.
Below is the code what I am using.
CASE WHEN RAP10B.CLMSRC = '2' THEN rap10.lossdt_t BETWEEN Add_months(rap01.teffdt_t, - 36) AND rap01.teffdt_t WHEN RAP10B.CLMSRC <> '2' THEN rap10.lossdt_t BETWEEN Add_months(rap01.teffdt_t, - 36) AND (rap01.teffdt_t - 60) END错误消息是"ORA-00905:缺少关键字".但是我找不到丢失的东西.
The error message is "ORA-00905: missing keyword". But I am not able to find the missing thing.
推荐答案通常最好在WHERE子句中使用AND/OR构造而不是case 表达式 :
It's generally much better to use AND/OR constructions in the WHERE clause instead of case expressions:
WHERE (RAP10B.CLMSRC = '2' AND rap10.lossdt_t BETWEEN Add_months(rap01.teffdt_t, - 36) AND rap01.teffdt_t) OR (RAP10B.CLMSRC <> '2' AND rap10.lossdt_t BETWEEN Add_months(rap01.teffdt_t, - 36) AND (rap01.teffdt_t - 60))更多推荐
语法错误“缺少关键字" WHERE子句中的case语句
发布评论