首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORA-00905:由于多个案例条件而缺少关键字

ORA-00905:由于多个案例条件而缺少关键字
EN

Stack Overflow用户
提问于 2020-07-15 11:45:06
回答 2查看 63关注 0票数 0

在逻辑时,由于多个情况,我得到missing keyword错误。下面是我的代码

代码语言:javascript
复制
select inv.ROUTE_APPROVED_BY_CMM as CMM_APPROVED_LENGTH, inv.SPAN_TYPE,  ROUND(SUM(NVL(CALCULATED_LENGTH,0)/1000),4) AS NE_LENGTH, 
ROUND(SUM(CASE WHEN RJ_CONSTRUCTION_METHODOLOGY NOT LIKE '%AERIAL%' OR RJ_CONSTRUCTION_METHODOLOGY IS  NULL THEN NVL(CALCULATED_LENGTH,0) ELSE 0 END)/1000,4) AS UG_LENGTH
,ROUND(SUM(CASE WHEN RJ_CONSTRUCTION_METHODOLOGY LIKE '%AERIAL%' THEN NVL(CALCULATED_LENGTH,0) ELSE 0 END)/1000,4) AS AR_LENGTH,
ROUND(SUM(CASE WHEN RJ_CONSTRUCTION_METHODOLOGY NOT LIKE '%AERIAL%' OR RJ_CONSTRUCTION_METHODOLOGY IS  NULL THEN NVL(CALCULATED_LENGTH,0) ELSE 0 END)/1000,4)/ ROUND(SUM(NVL(CALCULATED_LENGTH,0)/1000),4)*100 as ug_percentage
,mv.rj_intracity_link_id  FROM NE.MV_SPAN@DB_LINK_NE_VIEWER mv
join TBL_FIBER_INV_CMP_REPORT_MV inv
on   (CASE WHEN  inv.SPAN_TYPE = 'INTERCITY' THEN inv.SPAN_LINK_ID = mv.rj_span_id ELSE END)
      CASE WHEN inv.SPAN_TYPE = 'INTRACITY' THEN inv.SPAN_LINK_ID = mv.rj_intracity_link_id ELSE END)
      CASE WHEN inv.SPAN_TYPE = 'ENTERPRISE' THEN inv.SPAN_LINK_ID = mv.rj_intracity_link_id ELSE END)
GROUP BY mv.rj_intracity_link_id, inv.ROUTE_APPROVED_BY_CMM, inv.SPAN_TYPE;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-15 11:50:36

您不能在没有任何间隔的情况下拥有ELSE END,但是您也不能有一个条件作为WHENELSE子句来计算。

您可以使用布尔逻辑而不是大小写表达式:

代码语言:javascript
复制
join TBL_FIBER_INV_CMP_REPORT_MV inv
on   ((inv.SPAN_TYPE = 'INTERCITY' AND inv.SPAN_LINK_ID = mv.rj_span_id)
   or (inv.SPAN_TYPE = 'INTRACITY' AND inv.SPAN_LINK_ID = mv.rj_intracity_link_id)
   or (inv.SPAN_TYPE = 'ENTERPRISE' AND inv.SPAN_LINK_ID = mv.rj_intracity_link_id))
票数 1
EN

Stack Overflow用户

发布于 2020-07-15 11:50:27

不能从这样的情况返回条件(布尔值):

代码语言:javascript
复制
CASE WHEN inv.SPAN_TYPE = 'INTRACITY' THEN inv.SPAN_LINK_ID = mv.rj_intracity_link_id ELSE END

相反,您可以使用这样的案例表达式:

代码语言:javascript
复制
ON inv.SPAN_LINK_ID = CASE inv.SPAN_TYPE
                         WHEN 'INTERCITY' THEN mv.rj_span_id
                         WHEN 'INTRACITY' THEN mv.rj_intracity_link_id
                         WHEN 'ENTERPRISE' THEN mv.rj_intracity_link_id
                         END
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62914097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档